home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / c / inter40c.zip / INTERRUP.K < prev    next >
Text File  |  1994-04-03  |  355KB  |  9,697 lines

  1. Interrupt List, part 11 of 11
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------U-6A---------------------------------
  4. INT 6A - OPTHELP.COM
  5. Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  6.       assembler
  7. Note:    may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
  8. --------N-6A---------------------------------
  9. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  10. Note:    the installation check consists of testing for a signature area
  11.       immediately preceding the interrupt handler
  12. SeeAlso: INT 6B"DECnet",INT 6D"DECnet"
  13. Index:    installation check;DECnet DOS Local Area Transport
  14.  
  15. Format of signature area:
  16. Offset    Size    Description
  17.  -5    BYTE    major version number
  18.  -4    BYTE    minor version number
  19.  -3   3 BYTEs    signature (ASCII "LAT")
  20. --------N-6A0000-----------------------------
  21. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
  22.     AX = 0000h
  23. Return: AX = 4357h ('CW')
  24. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  25. Note:    an alternate installation check is to test for the ASCIZ signature
  26.       "FTC Super-TCP" three bytes past the interrupt handler
  27. SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 21/AH=3Fh"BW-TCP"
  28. SeeAlso: INT 61"PCTCP",INT 62/AH=00h"ETHDEV"
  29. --------N-6A0001-----------------------------
  30. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  31.     AX = 0001h
  32.     BH = function number
  33.         01h ???
  34.         DS:SI -> ??? 24-byte record1 (see below)
  35.         ES:DI -> buffer containing ???
  36.         02h ???
  37.         DS:SI -> ??? 18-byte record2 (see below)
  38.         ES:DI -> buffer containing ???
  39.         04h ???
  40.         BL = subfunction
  41.             01h
  42.             DS:SI -> ??? 28-byte record3 (see below)
  43.             ES:DI -> buffer containing ???
  44.             02h
  45.             DS:SI -> ??? 28-byte record3 (see below)
  46.             ES:DI -> buffer containing ???
  47.             03h
  48.             DS:SI -> ??? 28-byte record3 (see below)
  49.             else Return: AX = 0005h
  50.         05h ???
  51.         DS:SI -> ??? 20-byte record4 (see below)
  52.         ES:DI -> buffer containing ???
  53.         06h ???
  54.         BL = subfunction
  55.             01h
  56.             DS:SI -> ??? 40-byte record5 (see below)
  57.             02h
  58.             DS:SI -> ??? 20-byte record6 (see below)
  59.             ES:DI -> ???
  60.             03h
  61.             DS:SI -> ??? 20-byte record6 (see below)
  62.             04h
  63.             DS:SI -> ??? 46-byte record7 (see below)
  64.             else Return: AX = 0005h
  65.         11h ???
  66.         DS:SI -> ??? 28-byte record8 (see below)
  67.         ES:DI -> ???
  68. Return: AX = function status
  69.         0000h successful
  70.         0005h unsupported function
  71.         000Ah out of memory
  72. SeeAlso: AX=0000h
  73.  
  74. Format of record1:
  75. Offset    Size    Description
  76.  00h  4 BYTEs    ???
  77.  04h    WORD    size of ES:DI buffer
  78.  06h 18 BYTEs    ???
  79.  
  80. Format of record2:
  81. Offset    Size    Description
  82.  00h  4 BYTEs    ???
  83.  04h    WORD    size of ES:DI buffer
  84.  06h 12 BYTEs    ???
  85.  
  86. Format of record3:
  87. Offset    Size    Description
  88.  00h  2 BYTEs    ???
  89.  02h    WORD    ???
  90.  04h    WORD    size of ES:DI buffer
  91.  06h    WORD    ???
  92.  08h    WORD    operation number (for function 0401h)
  93.  0Ah    DWORD    -> ???
  94.  0Eh    WORD    (return) ???
  95.  10h 12 BYTEs    ???
  96.  
  97. Format of record4:
  98. Offset    Size    Description
  99.  00h  4 BYTEs    ???
  100.  04h    WORD    size of ES:DI buffer
  101.  06h 14 BYTEs    ???
  102.  
  103. Format of record5:
  104. Offset    Size    Description
  105.  00h    BYTE    operation??? (00h-07h)
  106.  01h    BYTE    ???
  107.  02h    WORD    (return) ???
  108.  04h    DWORD    -> ???
  109.  08h  4 BYTEs    ???
  110.  0Ch    DWORD    -> ??? or 0000h:0000h
  111.  10h 16 BYTEs    ???
  112.  20h    DWORD    ???
  113.  24h  4 BYTEs    ???
  114.  
  115. Format of record6:
  116. Offset    Size    Description
  117.  00h  4 BYTEs    ???
  118.  04h    WORD    size of ES:DI buffer
  119.  06h 14 BYTEs    ???
  120.  
  121. Format of record7:
  122. Offset    Size    Description
  123.  00h    WORD    ???
  124.  02h    WORD    ???
  125.  04h    WORD    ???
  126.  06h 40 BYTEs    ???
  127.  
  128. Format of record8:
  129. Offset    Size    Description
  130.  00h  4 BYTEs    ???
  131.  04h    WORD    size of ES:DI buffer
  132.  06h  6 BYTEs    ???
  133.  0Ch    WORD    (return) ???
  134.  0Eh    WORD    operation??? (01h-03h)
  135.  10h 12 BYTEs    ???
  136. --------N-6A0002-----------------------------
  137. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  138.     AX = 0002h
  139.     BX = ??? (zero/nonzero)
  140.     CX = ??? identifier (see AX=0004h)
  141.     DS:SI -> 40-byte buffer for ??? or 0000h:0000h
  142.     ES:DI -> buffer for ??? or 0000h:0000h
  143. Return: AX = 0000h (successful) ???
  144.     BL = ???
  145.     BH = ???
  146.     CX = ???
  147.     DX = ???
  148. --------N-6A0003-----------------------------
  149. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
  150.     AX = 0003h
  151. Return: CX:DX -> data area (see below)
  152.  
  153. Format of data area:
  154. Offset    Size    Description
  155.  00h  2 BYTEs    ???
  156.  02h    DWORD    original INT 6A vector
  157.  06h  2 BYTEs    ???
  158.  08h 96 BYTEs    array of 16 6-byte ???
  159.  68h    WORD    number of elements of above array in use
  160.  6Ah    WORD    ???
  161.     ???
  162. --------N-6A0004-----------------------------
  163. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
  164.     AX = 0004h
  165.     CX = size in ???
  166. Return: AX = 0000h (successful)
  167.     CX = DX = ???
  168. SeeAlso: AX=0005h,AX=000Fh
  169. --------N-6A0005-----------------------------
  170. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
  171.     AX = 0005h
  172.     CX = ??? identifier (from AX=0004h)
  173. Return: AX = status (0000h successful, FFFFh failed)
  174. SeeAlso: AX=0004h,AX=000Fh
  175. --------N-6A000F-----------------------------
  176. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
  177.     AX = 000Fh
  178. Return: AX = 0000h (successful)
  179. SeeAlso: AX=0000h,AX=0004h,AX=0005h
  180. --------N-6A0010-----------------------------
  181. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
  182.     AX = 0010h
  183. Return: AX = status
  184.         0000h successful
  185.         0002h can't uninstall, interrupt vector hooked by another program
  186. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  187. Note:    if AX is not one of the values listed here on entry, Super-TCP
  188.       returns AX=FFFEh
  189. SeeAlso: AX=0000h
  190. --------N-6A01--DHFF-------------------------
  191. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  192.     AH = 01h
  193.     DH = FFh
  194.     AL = character
  195.     DL = handle
  196. Return: AH >= 80h on error
  197. SeeAlso: AH=02h
  198. --------N-6A02--DHFF-------------------------
  199. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  200.     AH = 02h
  201.     DH = FFh
  202.     DL = handle
  203. Return: AH < 80h if successful
  204.         AL = character
  205.     AH >= 80h on error
  206. SeeAlso: AH=01h
  207. --------N-6A03--DHFF-------------------------
  208. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  209.     AH = 03h
  210.     DH = FFh
  211.     DL = handle
  212. Return: AH = status flags (see below)
  213.  
  214. Bitfields for status flags:
  215. Bit(s)    Description
  216.  5    transmit buffer empty
  217.  3    session in start state
  218.  2    session not active
  219.  1    unable to queue transmit data
  220.  0    receive data available
  221. --------N-6AD0--DHFF-------------------------
  222. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  223.     AH = D0h
  224.     DH = FFh
  225.     AL = FFh no password
  226.        = 0Fh password at ES:DI
  227.     ES:BX -> LAT session control block (see below)
  228.     ES:DI -> 16-byte blank-padded password
  229. Return: AH = 00h success
  230.         DL = handle
  231. SeeAlso: AX=D000h
  232.  
  233. Format of LAT Session Control Block:
  234. Offset    Size    Description
  235.  00h 18 BYTEs    service name
  236.  12h 18 BYTEs    node name (future use)
  237.  24h 18 BYTEs    port name (future use)
  238.  36h    DWORD    -> session stopped post routine
  239.  3Ah    DWORD    -> service table overflow post routine
  240.  3Eh    DWORD    -> transmit post routine
  241.  42h    DWORD    -> receive post routine
  242.  46h    WORD    session status
  243.         04h circuit failure
  244.         08h stop slot received
  245.  48h    WORD    slot state (LAT driver use)
  246.  4Ah    WORD    local credits (LAT driver use)
  247.  4Ch    DWORD    -> VCB (LAT driver use)
  248.  50h    WORD    backward slot (LAT driver use)
  249.  52h    WORD    forward slot (LAT driver use)
  250.  54h    WORD    remote slot ID (LAT driver use)
  251.  56h    WORD    local slot ID (LAT driver use)
  252.  58h    WORD    slot byte count (LAT driver use)
  253.  5Ah    BYTE    remote credits (LAT driver use)
  254.  5Bh 255 BYTEs    transmitted data slot
  255. 15Ah    BYTE    number of receive data slots (4 recommended)
  256. 15Bh    BYTE    number of occupied slots
  257. 15Ch    BYTE    index of next receive slot to use
  258. 15Dh    BYTE    index of current receive slot
  259. 15Eh    WORD    pointer to first received character
  260. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  261. Note:    set post routines to 0000h:0000h if polled operation will be used
  262. --------N-6AD000DHFF-------------------------
  263. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  264.     AX = D000h
  265.     DH = FFh
  266.     DL = handle
  267. Return: AX = 0000h successful
  268.        = 0001h no such session
  269.        = 0002h session not running, try again later
  270. SeeAlso: AH=D0h
  271. --------N-6AD100DHFF-------------------------
  272. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  273.     AX = D100h
  274.     DH = FFh
  275.     DL = handle
  276. Return: AX = 0000h if successful
  277.     AH bit 7 set if unable to send break
  278. --------N-6AD300DHFF-------------------------
  279. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  280.     AX = D300h
  281.     DH = FFh
  282. SeeAlso: AX=D400h
  283. --------N-6AD400DHFF-------------------------
  284. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  285.     AX = D400h
  286.     DH = FFh
  287.     CX = buffer size
  288.     ES:BX -> buffer for LAT counters
  289. Return: AX = 0000h counters copied into buffer
  290.        = FFFFh buffer too small
  291. SeeAlso: AX=D300h
  292. --------N-6AD500DHFF-------------------------
  293. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  294.     AX = D500h
  295.     DH = FFh
  296.     ES:BX -> 17-byte buffer for name
  297. Return: AH = 00h if successful
  298.        ES:BX buffer filled
  299.     AX = FFFFh if end of table or no name available
  300. Notes:    use this function to get the names of the hosts on the network
  301.     successive calls are necessary to get all names
  302. SeeAlso: AX=D600h
  303. --------N-6AD600DHFF-------------------------
  304. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  305.     AX = D600h
  306.     DH = FFh
  307. Return: AX = number of service table entries
  308.     BX = 0000h service table has not overflowed
  309.        = FFFFh service table has overflowed
  310. SeeAlso: AX=D500h
  311. --------N-6B---------------------------------
  312. INT 6B - DECnet DOS - PORT DRIVER
  313. Note:    the installation check consists of testing for a signature area
  314.       immediately preceding the interrupt handler
  315. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  316. Index:    installation check;DECnet DOS Port Driver
  317.  
  318. Format of signature area:
  319. Offset    Size    Description
  320.  -5    BYTE    major version number
  321.  -4    BYTE    minor version number
  322.  -3   3 BYTEs    signature (ASCII "PDV")
  323. --------v-6B---------------------------------
  324. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  325. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  326. --------S-6B0000-----------------------------
  327. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  328.     AX = 0000h
  329.     CX = length
  330.     ES:BX -> buffer
  331. Return: CX = number of bytes written
  332. Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased
  333.       from Network Products Corp, who call it NCSI) which runs on
  334.       workstations; NACS is the NetWare Asynchronous Communications
  335.       Services module which runs on servers
  336. Notes:    the installation check consists of testing for the signature string
  337.       "NCSI" three bytes past the interrupt handler; see also AH=02h.
  338.       As of version 3.0, Novell's NASI can be distinguished from NPC's
  339.       NCSI by the presence of an 'A' immediately following the signature
  340.     this function is also supported by TelAPI, NPC NCSI, and Connection
  341.       Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
  342.       connection ID
  343.     Connection Manager returns CF set/AL=FFh if called while an INT 6B
  344.       call is already in progress
  345. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  346. --------S-6B0100-----------------------------
  347. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  348.     AX = 0100h
  349.     CX = length of buffer
  350.     ES:BX -> buffer
  351. Return: CX = number of bytes read
  352. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  353.       AL specify a connection ID
  354. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  355. --------S-6B02-------------------------------
  356. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  357.     AH = 02h
  358.     AL nonzero
  359. Return: AL = 00h if present and OK
  360. Note:    this function is also supported by TelAPI and NPC NCSI
  361. SeeAlso: AX=0700h
  362. --------S-6B0600-----------------------------
  363. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  364.     AX = 0600h
  365.     CX = command
  366.         02h send break
  367.         04h disconnect
  368.         06h hold
  369. Return: CF clear if successful
  370.         AL = 00h
  371.     CF set on error
  372.         AX < 0
  373. Note:    this function is also supported by TelAPI and NPC NCSI
  374. --------S-6B0700-----------------------------
  375. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  376.     AX = 0700h
  377. Return: CH <> 00h if connection active
  378. Notes:    this function is also supported by TelAPI and NPC NCSI
  379.     Novell TelAPI returns CX=FF01h and CF clear
  380. SeeAlso: AH=02h,AH=10h
  381. --------N-6B08-------------------------------
  382. INT 6B - TelAPI - ???
  383.     AH = 08h
  384. Return: CF clear
  385.         AL = 00h
  386.         CX = 0000h
  387. Note:    this function also clears ??? flag
  388. SeeAlso: INT 14/AX=FF00h
  389. --------S-6B10-------------------------------
  390. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  391.     AH = 10h
  392.     AL = connection ID (Novell TELAPI.EXE)
  393.     CX = ???
  394. Return: CF clear if successful
  395.         CL = ???
  396.         CH = ???
  397.     CF set on error
  398.     ???
  399. Notes:    this function is also supported by TelAPI
  400.     when shelled out to an external protocol from Novell NASI, the circuit
  401.       whose status indicates that it is connected is the currently active
  402.       circuit
  403. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  404. --------S-6B11--DX0001-----------------------
  405. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  406.     AH = 11h
  407.     DX = 0001h
  408.     AL = 00h
  409.     ES:BX -> service name string (8 characters, blank-padded)
  410. Return: CF clear if successful
  411.         AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
  412.         CL = ??? (01h for Novell TELAPI.EXE)
  413.         CH = ??? (01h for Novell TELAPI.EXE)
  414.     CF set on error
  415.         ???
  416. Note:    this function is also supported by TelAPI
  417. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  418. --------S-6B12-------------------------------
  419. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  420.     AH = 12h
  421.     AL = virtual circuit number
  422.     CL = ???
  423.     ES:BX -> ???
  424. Return: ???
  425. Note:    this function is also supported by TelAPI
  426. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  427. --------S-6B13-------------------------------
  428. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  429.     AH = 13h
  430.     AL = virtual circuit number
  431.     CL = direction (00h get, nonzero set)
  432.     ES:BX -> buffer for/containing service name
  433. Return: ???
  434. Note:    this function is also supported by TelAPI
  435. SeeAlso: AH=14h,AH=15h
  436. --------S-6B14-------------------------------
  437. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  438.     AH = 14h
  439.     AL = virtual circuit number
  440.     ES:BX -> buffer for/containing service address
  441. Return: ???
  442. Note:    this function is also supported by TelAPI, which only supports
  443.       retrieving the address
  444. SeeAlso: AH=13h,AH=15h,AH=21h
  445. --------S-6B15-------------------------------
  446. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  447.     AH = 15h
  448.     AL = virtual circuit number
  449.     CL = direction (00h get, nonzero set)
  450.     ES:BX -> buffer for/containing virtual circuit config (see below)
  451. Return: ES:BX buffer filled
  452. Note:    this function is also supported by TelAPI
  453. SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
  454.  
  455. Format of virtual circuit configuration:
  456. Offset    Size    Description
  457.  00h    WORD    buffer length
  458.  02h    WORD    port ID
  459.  04h    WORD    receive rate
  460.  06h    WORD    receive word length
  461.  08h    WORD    receive stop bits
  462.  0Ah    WORD    receive parity
  463.  0Ch    WORD    transmit rate
  464.  0Eh    WORD    transmit word length
  465.  10h    WORD    transmit stop bits
  466.  12h    WORD    transmit parity
  467.  14h    WORD    DTR
  468.  16h    WORD    RTS
  469. --------S-6B16-------------------------------
  470. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  471.     AH = 16h
  472.     AL = virtual circuit number
  473.     CL = ??? switch (00h, ???)
  474. Return: CF clear if successful
  475.         AL = virtual circuit number
  476.     CF set on error
  477.         ???
  478. Note:    this function is also supported by TelAPI, which always returns CF
  479.       clear and AL=00h
  480. SeeAlso: AH=11h,AH=12h,AH=17h
  481. --------S-6B17-------------------------------
  482. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  483.     AH = 17h
  484.     AL = virtual circuit number
  485. Return: CF clear if successful
  486.     CF set on error
  487.     ???
  488. Note:    this function is also supported by TelAPI, which always returns CF
  489.       clear and AL=00h
  490. SeeAlso: AH=11h,AH=16h
  491. --------S-6B18-------------------------------
  492. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  493.     AH = 18h
  494.     AL = virtual circuit number
  495.     CX = number of characters to send
  496.     ES:BX -> buffer containing characters to be sent
  497. Return: CF clear if successful
  498.     CF set on error
  499.     ???
  500. Note:    this function is also supported by TelAPI, which always returns CF
  501.       clear and AL=30h
  502. SeeAlso: AX=0000h,AH=12h,AH=19h
  503. --------S-6B19-------------------------------
  504. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  505.     AH = 19h
  506.     AL = virtual circuit number
  507.     CX = number of characters to read
  508.     ES:BX -> buffer for received characters
  509. Return: CX = 0000h if failed
  510.     CX = nonzero (possibly number of characters received) if successful
  511. Note:    this function is also supported by TelAPI
  512. SeeAlso: AX=0100h,AH=12h,AH=18h
  513. --------S-6B1A-------------------------------
  514. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  515.     AH = 1Ah
  516.     ???
  517. Return: ???
  518. SeeAlso: AH=12h,AH=1Bh
  519. --------S-6B1B-------------------------------
  520. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  521.     AH = 1Bh
  522.     ???
  523. Return: ???
  524. SeeAlso: AH=12h,AH=1Ah
  525. --------S-6B1C-------------------------------
  526. INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
  527.     AH = 1Ch
  528.     AL = circuit number
  529. Return: nothing
  530. SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
  531. --------S-6B1D-------------------------------
  532. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  533.     AH = 1Dh
  534.     ???
  535. Return: ???
  536. SeeAlso: AH=1Ch,AH=1Eh
  537. --------S-6B1E-------------------------------
  538. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  539.     AH = 1Eh
  540.     ???
  541. Return: ???
  542. SeeAlso: AH=1Ch,AH=1Dh
  543. --------S-6B1F-------------------------------
  544. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  545.     AH = 1Fh
  546.     ???
  547. Return: ???
  548. SeeAlso: AH=10h,AH=12h
  549. --------S-6B20-------------------------------
  550. INT 6B - Connection Manager CLIENT.EXE - ???
  551.     AH = 20h
  552.     ???
  553. Return: ???
  554. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  555.       serial ports over an IPX or NetBIOS-based network
  556. Note:    CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  557. --------S-6B21-------------------------------
  558. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  559.     AH = 21h
  560.     AL = virtual circuit number
  561.     CL = ??? (00h or 01h)
  562.     ES:BX -> buffer for service name structure (see below)
  563. Return: CF clear if successful
  564.         ES:BX buffer filled
  565.     CF set on error
  566. Notes:    a program should call this function after allocating a virtual circuit
  567.       and check that the general name matches the requested service
  568.     prior to version 3.0, Novell's NASI returned the first available port;
  569.       v3.0+ returns the first port found--check the returned status to
  570.       determine whether the port is available
  571. SeeAlso: AH=14h"NCSI"
  572.  
  573. Format of service name structure:
  574. Offset    Size    Description
  575.  00h    WORD    buffer length
  576.  02h  8 BYTEs    service name
  577.  0Ah  8 BYTEs    general name
  578.  12h  8 BYTEs    specific name
  579.  1Ah  4 BYTEs    ???
  580. ---Novell NASI v3.0+ ---
  581.  1Eh    BYTE    port number
  582.  1Fh    BYTE    port status
  583.         00h idle (available)
  584.         01h allocated (available)
  585.         02h connected
  586.         03h on hold
  587. ----------6B6B-------------------------------
  588. INT 6B - Tandy SCHOOLMATE PLUS - API
  589.     AH = 6Bh
  590.     AL = E0h to FFh
  591. ----------6C---------------------------------
  592. INT 6C - system resume vector (CONVERTIBLE)
  593. ----------6C---------------------------------
  594. INT 6C - DOS 3.2 Realtime Clock update
  595. --------N-6C---------------------------------
  596. INT 6C - DECnet DOS network scheduler
  597. Notes:    the installation check consists of testing for a signature area
  598.       immediately preceding the interrupt handler
  599.     also supported by DEC Pathworks for DOS
  600. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  601. Index:    installation check;DECnet DOS scheduler
  602.  
  603. Format of signature area:
  604. Offset    Size    Description
  605.  -5    BYTE    major version number
  606.  -4    BYTE    minor version number
  607.  -3   3 BYTEs    signature (ASCII "SCH")
  608. --------V-6D---------------------------------
  609. INT 6D - VGA - internal
  610. Note:    used by IBM, Paradise, Video7, and NCR
  611. --------V-6D---------------------------------
  612. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  613.    points at the original INT 10 entry point set up by the ATI BIOS
  614. SeeAlso: INT 10
  615. --------V-6D---------------------------------
  616. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  617. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  618.       of a call to INT 6D followed by an IRET.
  619. --------N-6D---------------------------------
  620. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  621.     AH = function
  622.     ???
  623. Return: ???
  624. Note:    the installation check consists of testing for a signature area
  625.       immediately preceding the interrupt handler
  626. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  627. Index:    installation check;DECnet DOS Data Link Layer
  628.  
  629. Format of signature area:
  630. Offset    Size    Description
  631.  -5    BYTE    major version number
  632.  -4    BYTE    minor version number
  633.  -3   3 BYTEs    signature (ASCII "DLL")
  634. --------N-6E---------------------------------
  635. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  636. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  637.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  638.     there is a signature/data area immediately prior to the interrupt
  639.       handler which may be used as an installation check
  640. Index:    installation check;DECnet DOS
  641.  
  642. Format of signature area:
  643. Offset    Size    Description
  644.  -5    BYTE    major version number
  645.  -4    BYTE    minor version number
  646.  -3   3 BYTEs    signature (ASCII "DNP")
  647. --------N-6F---------------------------------
  648. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  649.     AX = function
  650.         0000h enter terminal mode
  651.         Return: AX = status
  652.                 0000h no action requested
  653.                 0001h screen save
  654.         0001h reset interface and set configuration parameters
  655.         DX = bitfields
  656.             bits 2-0: model number
  657.             bits 4-3: I/O address
  658.             bits 6-5: DMA channel
  659.         Return: nothing
  660.         0002h set display parameters
  661.         DX = bitfields
  662.             bits 1-0: OIA mode
  663.             bits 4-2: monitor support
  664.         Return: nothing
  665.         0003h read status
  666.         Return: AX = status word (see below)
  667.         0004h read cursor position
  668.         Return: AX = cursor position
  669.         0005h get character from device buffer
  670.         DX = cursor position
  671.         Return: AH = type (00h data, 01h attribute)
  672.             AL = data or attribute character
  673.         0006h send character
  674.         DH = type (00h ASCII, 01h extended code)
  675.         DL = ASCII character or extended code
  676.         Return: nothing
  677.         0007h set timeout
  678.         DX = timeout in seconds
  679.         Return: nothing
  680.         0008h wait for location to be modified
  681.         DX = cursor position
  682.         Return: AX = status (0000h modified, nonzero timeout)
  683.         0009h NOP
  684.         000Ah restore display
  685.         Return: nothing
  686.         000Bh update device buffer
  687.         Return: AX = cursor positoin
  688.         000Ch write string to add information area
  689.         DS:DX -> string
  690.         Return: nothing
  691.         000Dh maintenance operations
  692.         DX = maintenance operation code
  693.         Return: AX = operation status
  694.         000Eh get control program version
  695.         Return: AH = release number (major version)
  696.             AL = level number (minor version)
  697.         000Fh get microcode version
  698.         Return: AH = release number (major version)
  699.             AL = level number (minor version)
  700.         0010h save or display graphics
  701.         BX = length of data buffer
  702.         CX = subfunction request code
  703.         DS:DX -> data buffer
  704.         Return: AX = return code
  705.             CX = length of PIF data
  706.         0011h perform structured field operation
  707.         CX = request number
  708.         DS:DX -> parameter list
  709.         Return: AX = status word (see below)
  710.             CX = error number
  711.         0012h set cursor position for direct write buffer
  712.         DX = new cursor position
  713.         Return: AX = status word (see below)
  714.         0013h write direct to buffer
  715.         DL = character to be written
  716.         DH = translation option
  717.         Return: AX = status word (see below)
  718.         0014h write direct to buffer without echo
  719.         DL = character to be written
  720.         DH = translation option
  721.         Return: AX = status word (see below)
  722.         0015h set direct write string length
  723.         DX = string value
  724.         Return: nothing
  725.         0016h write string direct to buffer
  726.         DS:DX -> string
  727.         Return: AX = status word (see below)
  728.         0017h write string direct to buffer, untranslated
  729.         DS:DX -> string
  730.         Return: AX = status word (see below)
  731.         0018h get direct-write cursor position
  732.         Return: AX = cursor position
  733.         0019h convert row/column to cursor position
  734.         DH = display row (1-43)
  735.         DL = display column (1-132)
  736.         Return: AX = cursor position
  737.         001Ah convert cursor position to row/column
  738.         DX = cursor position
  739.         Return: AH = display row
  740.             AL = display column
  741.         001Bh find next field
  742.         DX = initial cursor position
  743.         Return: AX = field cursor position
  744.         001Ch find previous field
  745.         DX = initial cursor position
  746.         Return: AX = field cursor position
  747.         001Dh find next unprotected field
  748.         DX = initial cursor position
  749.         Return: AX = field cursor position
  750.         001Eh find previous unprotected field
  751.         DX = initial cursor position
  752.         Return: AX = field cursor position
  753.         001Fh find next protected field
  754.         DX = initial cursor position
  755.         Return: AX = field cursor position
  756.         0020h find previous protected field
  757.         DX = initial cursor position
  758.         Return: AX = field cursor position
  759.         0021h masked search forward
  760.         DH = mask
  761.         DL = search pattern
  762.         Return: AX = cursor position or 0000h
  763.         0022h masked search backward
  764.         DH = mask
  765.         DL = search pattern
  766.         Return: AX = cursor position or 0FFFh
  767.         0023h find field length
  768.         DX = cursor position
  769.         Return: AX = field length
  770.         0024h read field
  771.         DS:DX -> buffer for field contents
  772.         Return: AX = status word (see below)
  773.         0025h read screen
  774.         DS:DX -> buffer for screen contents
  775.         Return: AX = status word (see below)
  776.         0026h read buffer untranslated
  777.         DX = cursor position
  778.         Return: AX = buffer code
  779.             CX:BX -> 3278/79 device buffer image
  780.         0027h enable/disable keyboard
  781.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  782.         Return: nothing
  783.         0028h select host session
  784.         DL = session short name
  785.         Return: AX = session information
  786.         0029h retrieve host session name
  787.         AX = short name (DFT) or 0000h (not available, CUT mode)
  788.         002Ah get current device buffer size
  789.         Return: AX = device buffer size
  790.             CX = segment of EAB
  791.         002Bh arm modified location trigger
  792.         DX = cursor position
  793.         Return: AX = status (0000h not available, 0001h successful)
  794.  
  795. Bitfields for status word:
  796. Bit(s)    Description
  797.  0,1    cursor type
  798.  2    cursor inhibited
  799.  3    display inhibited
  800.  4    feature step inhibited
  801.  5    480-character format code
  802.  6,7    unused
  803.  8-10    model number (2-5)
  804.  11    unit has been reset by controller (cleared after status returned)
  805.  12    buffer has been written into (cleared after status returned)
  806.  13    alarm has been sounded (cleared after status returned)
  807.  14-15    monitor type (01 mono, 10 color, 11 hybrid)
  808. --------N-6F00-------------------------------
  809. INT 6F - 10NET - LOGIN
  810.     AH = 00h
  811.     DS:DX -> login record (see below)
  812. Return: CL = security level
  813.     AX = status (see below)
  814. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  815.  
  816. Format of login record:
  817. Offset    Size    Description
  818.  00h  8 BYTEs    user name
  819.  08h  8 BYTEs    password
  820.  10h 12 BYTEs    name of SuperStation
  821.  
  822. Values for status:
  823.  0000h    successful
  824.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  825.  02FFh    "NET_NERR" network (hardware) error
  826.  03FFh    "PAS_NERR" invalid password
  827.  04FFh    "LRN_NERR" local resource not available
  828.  05FFh    "SRN_NERR" server resource not available
  829.  06FFh    "LNM_NERR" already logged in under different name
  830.  07FFh    "LSF_NERR" login security failure (node)
  831.  08FFh    "NLI_NERR" not logged in
  832.  09FFh    "DIVZ_NERR" position calc error
  833.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  834.  0BFFh    "RFNC_NERR" request function not in range
  835.  0CFFh    "NSFH_NERR" no more server file handle entries left
  836.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  837.  0EFFh    "NUFH_NERR" no more user file handle entries left
  838.  0FFFh    "CHAT_NERR" chat permit not on
  839.  10FFh    "NSRV_NERR" not a server on request
  840.  11FFh    "NOBD_NERR" no transporter board error
  841.  12FFh    "STO_NERR" time out on send
  842.  13FFh    "INF_NERR" item not found (spool item not on queue)
  843.  14FFh    "DACS_NERR" DOS access incompatible
  844.  15FFh    "RLOCK_NERR" record already locked
  845.  16FFh    "IVP_NERR" invalid parameter
  846.  17FFh    "RLTO_NERR" record lock time out error
  847.  18FFh    "CSPL_NERR" currently spooling to named device
  848.  19FFh    "DRP_NERR" dropped receive message (throttle)
  849.  1AFFh    "SOPV_NERR" open sharing violation
  850.  1BFFh    "NTUF_NERR" no more tuf entries left
  851.  1CFFh    "NOWN_NERR" not file owner on open
  852.  1DFFh    "RSEC_NERR" read security not passed
  853.  1EFFh    "WSEC_NERR" write security not passed
  854.  1FFFh    "GSEC_NERR" group security not passed
  855.  20FFh    "SEC1_NERR" security file failure
  856.  21FFh    "ACT1_NERR" activity file failure
  857.  22FFh    "SPL1_NERR" spool control file failure
  858.  23FFh    "NMT_NERR" device not mounted (spooling)
  859.  24FFh    "RSPL_NERR" spool file has not been terminated
  860.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  861.  26FFh    "DUP_NERR" duplicate node ID
  862.  27FFh    "FNF_NERR" file not found error
  863.  28FFh    "NMF_NERR" no more files
  864.  29FFh    "UN_NERR" unknown internal system error
  865.  2AFFh    "QCP_NERR" print queue is full or corrupted
  866.  2BFFh    "IFNC_NERR" invalid function
  867.  2CFFh    "IVH_NERR" invalid handle
  868.  2DFFh    "TOF_NERR" too many files opened
  869.  2EFFh    "PNF_NERR" path not found
  870.  2FFFh    "SACT_NERR" named file is active
  871. ---10NET v5.0+ ---
  872.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  873.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  874.  32FFh    "RECV_NERR" driver could not be put in receive mode
  875.  33FFh    "NRLT_NERR" no more RLTAB entries left
  876.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  877.  35FFh    "IVD_NERR" invalid device
  878.  36FFh    "NALV_NERR" netname access level violated
  879.  37FFh    "NPIDNF_NERR" network path not found
  880.  38FFh    "SP_NERR" server is paused
  881.  39FFh    "TMNM_NERR" too many remote user names
  882.  3AFFh    "DUPD_NERR" duplicate network device
  883.  3BFFh    "DIU_NERR" shared device in use, can't delete
  884.  3CFFh    "NNWD_NERR" network name was deleted
  885.  3DFFh    "NPFS_NERR" not enough space for print file
  886.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  887.  3FFFh    "NB_NERR" network busy
  888.  40FFh    "NDNLE_NERR" network device no longer exists
  889.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  890.  42FFh    "FINT24_NERR" Fail on INT 24h
  891.  43FFh    "PEXP_NERR" password expired
  892.  44FFh    "NPUP_NERR" new password error
  893.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  894.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  895. Index:    error codes;10Net|10Net;error codes
  896. --------N-6F01-------------------------------
  897. INT 6F - 10NET - LOGOFF
  898.     AH = 01h
  899.     DS:DX -> superstation ID or nulls (12 bytes)
  900. Return: CX = number of files closed
  901.     AX = status (see also AH=00h)
  902.         08FFh superstation ID not already logged in
  903. SeeAlso: AH=00h,AH=81h
  904. --------N-6F02-------------------------------
  905. INT 6F - 10NET - STATUS OF NODE
  906.     AH = 02h
  907.     DS:DX -> 512-byte status record (see below)
  908. Return:    CF clear if successful
  909.     CF set on error
  910.         AX = error code (see AH=00h)
  911. SeeAlso: INT 21/AX=5E01h"10NET"
  912.  
  913. Format of node status record:
  914. Offset    Size    Description
  915.  00h  8 BYTEs    user name (0 if none)
  916.  08h    BYTE    station type
  917.         00h workstation
  918.         01h superstation
  919.         02h gateway station
  920.         03h gateway active
  921.         04h logged into multiple superstations
  922.         05h reserved
  923.  09h 24 BYTEs    list of superstations logged into more than one superstation
  924.  21h 12 BYTEs    node ID
  925.  2Dh    WORD    message count for this station (send for user node, receive for
  926.         superstations)
  927. ---for superstations only---
  928.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  929.  31h    BYTE    user service flags (see below)
  930.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  931.  33h    BYTE    number of unprinted spool files
  932.  34h    BYTE    number of opened files
  933.  35h    BYTE    number of logged on nodes
  934.  36h    BYTE    primary drive (1=A:)
  935.  37h    BYTE    reserved
  936.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  937. 1F4h  3 BYTEs    time: sec/min/hrs
  938. 1F7h  3 BYTEs    date: day/mon/year-1980
  939.  
  940. Bitfields for user service flags:
  941. Bit(s)    Description
  942.  7    gate
  943.  6    print permit on
  944.  4    SUBMIT is on
  945.  3    mail waiting for node
  946.  2    calendar waiting for you
  947.  1    news waiting for you
  948.  0    mail waiting for you
  949. --------W-6F0204-----------------------------
  950. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  951.     AX = 0204h
  952. Return: AX = status
  953.         0000h switch is allowed
  954.         other switch not allowed
  955. Note:    intercepting this call will allow a DOS application to ensure that
  956.       Windows will not switch away from it.
  957. --------N-6F03-------------------------------
  958. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  959.     AH = 03h
  960.     DS:DI -> node ID (optional)
  961. Return: ES:BX -> configuration table
  962. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  963.  
  964. Format of configuration table:
  965. Offset    Size    Description
  966. -41    WORD    local device table address
  967. -39    WORD    extended network error mapping table address
  968. -37    WORD    shared device table address
  969. -35    WORD    mounted device table address
  970. -33    BYTE    receive buffer counter
  971. -32    BYTE    collect buffer counter
  972. -31    WORD    TUF address
  973. -29    BYTE    enable flag
  974. -28    BYTE    FCB keep flag
  975. -27    WORD    reserved
  976. ---up to here, 10NET v3.3---
  977. -25    WORD    count of dropped Send6F
  978. -23    WORD    buffer start address
  979. -21    WORD    comm driver base address
  980. -19    WORD    send/receive retry count
  981. -17    BYTE    number of 550ms loops before timeout
  982. -16    WORD    UFH address
  983. -14    WORD    CDIR address
  984. -12    WORD    LTAB address
  985. -10    WORD    SFH address
  986. -8    WORD    FTAB address
  987. -6    WORD    RLTAB address
  988. -4    WORD    SMI address
  989. -2    WORD    NTAB address
  990.  00h    WORD    address of first CT_DRV
  991.  02h    BYTE    number of DRV entries
  992.  03h  8 BYTEs    login name
  993.  0Bh 12 BYTEs    node ID (blank-padded)
  994.  17h  6 BYTEs    node address
  995.  1Dh    BYTE    flag
  996.  1Eh    BYTE    CT_CFLG (chat permit)
  997.         bit 1: sound bell
  998.         bit 0: CHAT permit
  999.  1Fh    BYTE    CT_PSFLG (see below)
  1000.  20h    BYTE    in 10Net flag
  1001.  21h    WORD    receive message count
  1002.  23h    WORD    send message count
  1003.  25h    WORD    retry count
  1004.  27h    WORD    failed count
  1005.  29h    WORD    driver errors
  1006.  2Bh    WORD    dropped responses/CHATs
  1007.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  1008.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  1009.  3Ch    BYTE    active CB channel
  1010.  3Dh    BYTE    received 6F messages on queue
  1011.  3Eh  9 BYTEs    activity counters for channels 1-9
  1012. ---beyond here, 10NET v3.3---
  1013.  47h    BYTE    bit 0: RS232 gate
  1014.         bit 1: Send6F gate (user set)
  1015.  48h    DWORD    pointer into gate (user set)
  1016.  4Ch    DWORD    pointer into 10Net send
  1017.  50h  N WORDs    addresses of timer blocks
  1018.  
  1019. Bitfields for CT_PSFLG:
  1020. Bit(s)    Description
  1021.  5    PRINT permit
  1022.  4    KB initiated
  1023.  3    CHAT called FOXPTRM
  1024.  2    SUBMIT active
  1025.  1    SUBMIT received
  1026.  0    SUBMIT permit
  1027. --------N-6F04-------------------------------
  1028. INT 6F - 10NET - SEND
  1029.     AH = 04h
  1030.     DS:BX -> send record (see below)
  1031.     DS:DX -> data (max 1024 bytes)
  1032. Return:    CF clear if successful
  1033.     CF set on error
  1034.         AX = error code (see AH=00h)
  1035. SeeAlso: AH=05h,AH=09h,AH=0Ah
  1036.  
  1037. Format of send record:
  1038. Offset    Size    Description
  1039.  00h 12 BYTEs    receiving node's ID
  1040.         if first byte has high-order bit set, message is directed to
  1041.           the CT_RGATE vector at the receiver
  1042.         if second byte is 00h, first byte is taken as a CB
  1043.           channel number and delivered to all nodes on same channel
  1044.  0Ch    WORD     length of data at DX
  1045. --------N-6F05-------------------------------
  1046. INT 6F - 10NET - RECEIVE
  1047.     AH = 05h
  1048.     CX = number of seconds before timeout
  1049.     DS:DX -> receive buffer (see below)
  1050. Return:    CF clear if successful
  1051.         AH = FEh if dequeued message is a CB message
  1052.     CF set on error
  1053.         AX = error code (see AH=00h)
  1054. SeeAlso: AH=04h
  1055.  
  1056. Format of receive buffer:
  1057. Offset    Size    Description
  1058.  00h 12 BYTEs    sending node's ID
  1059.  0Ch    WORD    length of message
  1060.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1061. --------N-6F07-------------------------------
  1062. INT 6F - 10NET - LOCK HANDLE
  1063.     AH = 07h
  1064.     BX = file handle
  1065.     CX:DX = starting offset in file
  1066.     SI = record length
  1067. Return:    CF clear if successful
  1068.     CF set on error
  1069.         AX = error code (see also AH=00h)
  1070.         0002h file not found
  1071. SeeAlso: AH=08h,AH=0Fh,INT 21/AH=5Ch
  1072. --------N-6F08-------------------------------
  1073. INT 6F - 10NET - UNLOCK HANDLE
  1074.     AH = 08h
  1075.     BX = file handle
  1076.     AL = mode
  1077.         00h unlock all
  1078.         01h unlock record at CX:DX
  1079. Return:    CF clear if successful
  1080.     CF set on error
  1081.         AX = error code (see also AH=00h)
  1082.         0002h file not found
  1083. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1084. --------N-6F09-------------------------------
  1085. INT 6F - 10NET - SUBMIT
  1086.     AH = 09h
  1087.     DS:BX -> submit record (see below)
  1088. SeeAlso: AH=04h
  1089.  
  1090. Format of submit record:
  1091. Offset    Size    Description
  1092.  00h 12 BYTEs    destination node ID (must be logged in)
  1093.  0Ch    WORD    length+2 of following 'command line' text
  1094.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1095. --------N-6F0A-------------------------------
  1096. INT 6F - 10NET - CHAT
  1097.     AH = 0Ah
  1098.     DS:BX -> control parameters (see below)
  1099.     DS:DX -> chat message (see below)
  1100. SeeAlso: AH=04h,AH=8Ah
  1101.  
  1102. Format of control parameters:
  1103. Offset    Size    Description
  1104.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1105.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1106.  10h 12 BYTEs    destination node ID
  1107.  
  1108. Format of chat message:
  1109. Offset    Size    Description
  1110.  00h    WORD    length+2 of following text
  1111.  02h  N BYTEs    text, max 101 bytes
  1112. --------N-6F0B-------------------------------
  1113. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1114.     AH = 0Bh
  1115.     AL = drive number or 0
  1116.     ES:SI = Ethernet address or 0
  1117.     DS:BX -> 31-byte ASCIZ semaphore name
  1118. Return: AL = status (see below)
  1119. Note:    same as INT 60/AH=12h
  1120. SeeAlso: AH=0Ch,INT 60/AH=12h
  1121.  
  1122. Values for status:
  1123.  00h    successful
  1124.  01h    semaphore currently locked
  1125.  02h    server not responding
  1126.  03h    invalid semaphore name
  1127.  04h    semaphore list is full
  1128.  05h    invalid drive ID
  1129.  06h    invalid Ethernet address
  1130.  07h    not logged in
  1131.  08h    write to network failed
  1132.  09h    semaphore already logged in this CPU
  1133. Index:    error codes;10-Net|10-Net;error codes
  1134. --------N-6F0C-------------------------------
  1135. INT 6F - 10NET - UNLOCK SEMAPHORE
  1136.     AH = 0Ch
  1137.     AL = drive number or 0
  1138.     ES:SI = Ethernet address or 0
  1139.     DS:BX -> 31-byte ASCIZ semaphore name
  1140. Return: AL = status (see also AH=0Bh)
  1141.         01h semaphore not locked
  1142. Note:    same as INT 60/AH=13h
  1143. SeeAlso: AH=0Bh,INT 60/AH=13h
  1144. --------N-6F0D-------------------------------
  1145. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  1146.     AH = 0Dh
  1147.     AL = type code
  1148.         01h return superstations only
  1149.         02h return non-superstations only
  1150.         otherwise return all
  1151.     CX = length of data buffer
  1152.     DS:DX -> array of records to be filled (see below)
  1153. Return: CL = number of records returned (responding stations)
  1154. SeeAlso: AH=16h,AH=8Dh
  1155.  
  1156. Format of station record:
  1157. Offset    Size    Description
  1158.  00h 12 BYTEs    node ID
  1159.  0Ch    BYTE    flags
  1160.         bit 1: workstation
  1161.         bit 2: superstation
  1162.         bit 3: xgate
  1163.         bit 4: active gate
  1164. ---if AL = 01h---
  1165.  0Dh    BYTE    version number
  1166.  0Eh    WORD    level number of 10Net software in responding node
  1167. ---if AL = 02h---
  1168.  0Dh  8 BYTEs    user ID
  1169.  15h    BYTE    version number
  1170.  16h    WORD    level number
  1171. --------N-6F0E-------------------------------
  1172. INT 6F - 10NET - SPOOL/PRINT
  1173.     AH = 0Eh
  1174.     DS:DX -> spool/print record (see below)
  1175. Return:    CF clear if successful
  1176.     CF set on error
  1177.         AX = error code (see also AH=00h)
  1178.         17FFh device not mounted
  1179.         18FFh already spooling to named device
  1180.  
  1181. Values for operation code:
  1182.  0000h    initiate spool
  1183.  0001h    abort print
  1184.  0002h    close spool
  1185.  0003h    delete spool
  1186.  0004h    print
  1187.  0005h    get report info
  1188.  0006h    set chat template
  1189.  0007h    queue
  1190.  0008h    return queue
  1191.  0009h    queue non-spooled file for printing
  1192.  
  1193. Format of Spool/Print record:
  1194. Offset    Size    Description
  1195.  00h    WORD    operation code (see above)
  1196.  02h 11 BYTEs    file name in FCB format
  1197. ---if operation code = 00h or 06h---
  1198.  0Dh    BYTE    notification flags (see below)
  1199.  0Eh    BYTE    days to keep (FFh=forever)
  1200.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1201.         bits 4-7: remote drive to store spool file (1=A,...)
  1202.  10h    WORD    length of following data area
  1203.  12h  N BYTEs    up to 64 bytes of description
  1204. ---if operation code = 03h---
  1205.  0Dh  8 BYTEs    user ID to associate with filename
  1206. ---if operation code = 04h---
  1207.  0Dh    WORD    block number
  1208.  0Fh  8 BYTEs    user ID to associate with filename
  1209. ---if operation code = 05h---
  1210.  0Dh    BYTE    RRN to start retrieve
  1211.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1212.         bit 3: if set, return entries for all users
  1213.  0Fh    WORD    length of following area
  1214.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1215. ---if operation code = 07h---
  1216.  0Dh    BYTE    queue number
  1217.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1218.  0Fh    WORD    number of bytes of test print to be done
  1219.  11h    BYTE    code: 01h print device
  1220.               02h test print count
  1221.               03h prn
  1222. ---if operation code = 08h---
  1223.  0Dh    BYTE    queue location or $SCNTL location to start access
  1224.             returns next item for access:
  1225.                 00h-7Fh queued items
  1226.                 80h-FEh non-queued, non-printed items
  1227.                 FFh    no more items
  1228.  0Eh    WORD    unused
  1229.  10h    WORD    length of following area
  1230.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  1231. ---if operation code = 09h---
  1232.  0Dh  3 BYTEs    unused
  1233.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1234.  
  1235. Bitfields for notification flags:
  1236. Bit(s)    Description
  1237.  7    queue to top
  1238.  6    do ID page
  1239.  5    no form feed
  1240.  4    reserved
  1241.  3    explicit queuing only
  1242.  2    notify at print completion
  1243.  1    notify server operator, with reply
  1244.  0    notify at print start
  1245.  
  1246. Format of $SCNTL record:
  1247. Offset    Size    Description
  1248.  00h  8 BYTEs    user ID
  1249.  08h 11 BYTEs    filename in FCB format
  1250.  13h  6 BYTEs    node ID
  1251.  19h  3 BYTEs    creation date
  1252.  1Ch    BYTE    notification flags (see above)
  1253.  1Dh    BYTE    retention time in days
  1254.  1Eh    BYTE    printing device (LPTx)
  1255.  1Fh  3 BYTEs    date last printed (0 = never)
  1256.  22h    BYTE    device containing spoolfile
  1257.  23h    WORD    bytes to print for test print
  1258.  25h    WORD    block number to start print
  1259.  27h    BYTE    reserved
  1260. --------N-6F0F-------------------------------
  1261. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1262.     AH = 0Fh
  1263.     ???
  1264. Return: ???
  1265. SeeAlso: AH=07h,AH=08h
  1266. --------N-6F10-------------------------------
  1267. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1268.     AH = 10h
  1269.     AL = subfunction
  1270.         00h initiate spooling if LPT1 is mounted
  1271.         01h terminate spooling if LPT1 is mounted
  1272. SeeAlso: INT 21/AX=5D08h
  1273. --------N-6F11-------------------------------
  1274. INT 6F - 10NET - LOCK FCB
  1275.     AH = 11h
  1276.     AL = mode
  1277.         01h sequential
  1278.         02h random
  1279.         03h random block
  1280.         CX = number of records
  1281.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1282. Return:    CF clear if successful
  1283.     CF set on error
  1284.         AX = error code (see also AH=00h)
  1285.         0002h file not found
  1286. SeeAlso: AH=12h
  1287. --------N-6F12-------------------------------
  1288. INT 6F - 10NET - UNLOCK FCB
  1289.     AH = 12h
  1290.     AL = mode
  1291.         00h sequential
  1292.         01h random
  1293.         02h random block
  1294.         CX = number of records
  1295.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1296. Return:    CF clear if successful
  1297.     CF set on error
  1298.         AX = error code (see also AH=00h)
  1299.         0002h file not found
  1300. SeeAlso: AH=11h
  1301. --------N-6F13-------------------------------
  1302. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1303.     AH = 13h
  1304.     DS:DX -> node ID, 12 bytes blank-padded
  1305. Return:    CF clear if successful
  1306.         ES:BX = configuration table address on given machine
  1307.     CF set on error
  1308.         AX = error code (see AH=00h)
  1309. SeeAlso: AH=03h
  1310. --------N-6F14-------------------------------
  1311. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1312.     AH = 14h
  1313.     BX:SI = address of remote memory
  1314.     CX = length (<=1024 bytes)
  1315.     DS:DX -> node ID, 12 bytes blank-padded
  1316.     DS:DI -> area to receive remote memory image
  1317. Return:    CF clear if successful
  1318.         CX = amount of memory copied to DS:SI
  1319.     CF set on error
  1320.         AX = error code (see AH=00h)
  1321. --------N-6F1501-----------------------------
  1322. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1323.     AX = 1501h
  1324.     BX = zero-based index
  1325.     DS:SI -> node ID, 12 bytes blank-padded
  1326.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  1327. Return:    CF clear if successful
  1328.         ES:DI buffer contains shared device table entry of BXth device
  1329.     CF set on error
  1330.         AX = error code (see AH=00h)
  1331. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  1332.  
  1333. Format of shared device table entry:
  1334. Offset    Size    Description
  1335.  00h  8 BYTEs    device
  1336.  08h  8 BYTEs    alias
  1337.  10h 64 BYTEs    path
  1338.  50h  8 BYTEs    password
  1339.  58h    BYTE    access
  1340.  59h  4 BYTEs    mask
  1341. --------N-6F1502-----------------------------
  1342. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  1343.     AX = 1502h
  1344.     DS:SI -> node ID, 12 bytes blank-padded
  1345.     ES:DI -> valid shared device table entry
  1346. Return:    CF clear if successful
  1347.     CF set on error
  1348.         AX = error code (see AH=00h)
  1349. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  1350. --------N-6F1503-----------------------------
  1351. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  1352.     AX = 1503h
  1353.     BX = zero-based index
  1354.     DS:SI -> node ID, 12 bytes blank-padded
  1355. Return:    CF clear if successful
  1356.     CF set on error
  1357.         AX = error code (see AH=00h)
  1358. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  1359. --------N-6F16-------------------------------
  1360. INT 6F - 10NET v5.0 - "GL WHO" - ???
  1361.     AH = 16h
  1362.     ???
  1363. Return: ???
  1364. SeeAlso: AH=0Dh
  1365. --------N-6F17-------------------------------
  1366. INT 6F - 10NET v3.3+ - MOUNT
  1367.     AH = 17h
  1368.     AL = local drive number (0=A:)
  1369.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  1370.     DS:DX -> node ID, 12 bytes blank-padded
  1371. Return:    CF clear if successful
  1372.     CF set on error
  1373.         AX = error code (see AH=00h)
  1374. SeeAlso: AH=18h
  1375. --------N-6F18-------------------------------
  1376. INT 6F - 10NET v3.3+ - UNMOUNT
  1377.     AH = 18h
  1378.     AL = local drive number (0=A:)
  1379.     BL = type
  1380.         00h        disk
  1381.         01h-03h LPTn
  1382.         04h,05h COMx
  1383. Return:    CF clear if successful
  1384.     CF set on error
  1385.         AX = error code (see AH=00h)
  1386. SeeAlso: AH=17h
  1387. --------N-6F19-------------------------------
  1388. INT 6F U - 10NET v5.0 - AUDIT
  1389.     AH = 19h
  1390.     ???
  1391. Return: ???
  1392. SeeAlso: AH=99h
  1393. --------N-6F1A-------------------------------
  1394. INT 6F U - 10NET v5.0 - "BULL" - ???
  1395.     AH = 1Ah
  1396.     ???
  1397. Return: ???
  1398. --------N-6F1B-------------------------------
  1399. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  1400.     AH = 1Bh
  1401.     ???
  1402. Return: ???
  1403. --------N-6F1C-------------------------------
  1404. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  1405.     AH = 1Ch
  1406.     ???
  1407. Return: ???
  1408. --------N-6F1D-------------------------------
  1409. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  1410.     AH = 1Dh
  1411.     ???
  1412. Return: ???
  1413. --------N-6F1E-------------------------------
  1414. INT 6F U - 10NET v5.0 - "SCHED" - ???
  1415.     AH = 1Eh
  1416.     ???
  1417. Return: ???
  1418. --------N-6F1F-------------------------------
  1419. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  1420.     AH = 1Fh
  1421.     ???
  1422. Return: ???
  1423. --------N-6F20-------------------------------
  1424. INT 6F U - 10NET v5.0 - ???
  1425.     AH = 20h
  1426.     ???
  1427. Return: ???
  1428. --------N-6F21-------------------------------
  1429. INT 6F U - 10NET v5.0 - ???
  1430.     AH = 21h
  1431.     ???
  1432. Return: ???
  1433. --------N-6F22-------------------------------
  1434. INT 6F U - 10NET v5.0 - ???
  1435.     AH = 22h
  1436.     ???
  1437. Return: ???
  1438. --------b-6F22--BP0012-----------------------
  1439. INT 6F - HP HIL Vectras - EXTENDED BIOS - READ CMOS MEMORY
  1440.     AH = 22h
  1441.     BP = 0012h (ID of V_SYSTEM driver)
  1442.     BL = address of CMOS byte to read
  1443. Return: AH = status
  1444.     AL = byte read
  1445.     BP, DS destroyed
  1446. Note:    supported by ES, QS, and RS series HP Vectras
  1447. SeeAlso: BP=0012h/AH=24h
  1448. --------b-6F24--BP0012-----------------------
  1449. INT 6F - HP HIL Vectras - EXTENDED BIOS - WRITE CMOS MEMORY
  1450.     AH = 24h
  1451.     BP = 0012h (ID of V_SYSTEM driver)
  1452.     BL = address of CMOS byte to write
  1453.     AL = new value
  1454. Return: AH = status
  1455.     BP, DS destroyed
  1456. SeeAlso: BP=0012h/AH=22h
  1457. --------N-6F80-------------------------------
  1458. INT 6F - 10NET v5.0 - LOGIN
  1459.     AH = 80h
  1460.     DS:DX -> login record (see below)
  1461. Return: CF clear if successful
  1462.         BL = number of days until password expires (00h = never)
  1463.         CL = security level
  1464.     CF set on error
  1465.         AX = status (see AH=00h)
  1466. SeeAlso: AH=00h,AH=81h
  1467.  
  1468. Format of login record:
  1469. Offset    Size    Description
  1470.  00h  8 BYTEs    user name
  1471.  08h  8 BYTEs    password
  1472.  10h 15 BYTEs    server node ID
  1473.  1Fh  8 BYTEs    new password
  1474.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  1475. --------N-6F81-------------------------------
  1476. INT 6F - 10NET v5.0 - LOGOUT
  1477.     AH = 81h
  1478.     DS:DX -> server node ID (DX=0000h for universal logout)
  1479. Return: AX = status (see AH=00h)
  1480. SeeAlso: AH=01h,AH=80h
  1481. --------N-6F8A-------------------------------
  1482. INT 6F - 10NET v5.0 - CHAT
  1483.     AH = 8Ah
  1484.     DS:BX -> chat parameters (see below)
  1485.     DS:DX -> chat message (see below)
  1486. Return: CF clear if successful
  1487.     CF set on error
  1488.         AX = status (see AH=00h)
  1489. SeeAlso: AH=0Ah
  1490.  
  1491. Format of chat parameters:
  1492. Offset    Size    Description
  1493.  00h  8 BYTEs    sender's user name
  1494.  08h  8 BYTEs    destination user name
  1495.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  1496.  
  1497. Format of chat message:
  1498. Offset    Size    Description
  1499.  00h    WORD    message length
  1500.  02h  N BYTEs    chat message contents
  1501. --------N-6F8D-------------------------------
  1502. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  1503.     AH = 8Dh
  1504.     BX = service mask (see below)
  1505.     CX = length of buffer
  1506.     DS:DX -> buffer for array of Who data structures (see below)
  1507. Return: CF clear if successful
  1508.         CX = number of nodes matching service mask
  1509.         DS:DX buffer filled
  1510.     CF set on error
  1511.         AX = status (see AH=00h)
  1512. SeeAlso: AH=0Dh
  1513.  
  1514. Bitfields for service mask:
  1515. Bit(s)    Description
  1516.  0    workstation
  1517.  1    file server
  1518.  2    print server
  1519.  3    de-spool server
  1520.  
  1521. Format of Who data structure:
  1522. Offset    Size    Description
  1523.  00h  8 BYTEs    user name
  1524.  08h 15 BYTEs    node ID
  1525.  17h  3 BYTEs    unique portion of Ethernet address
  1526.  1Ah    BYTE    Who group number
  1527.  1Bh    WORD    service mask (see above)
  1528.  1Dh    DWORD    serial number
  1529.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  1530.  22h    BYTE    chat mask (see below)
  1531.  23h    BYTE    internal system bits (see below)
  1532.  24h  9 BYTEs    version number in format MM.mm.xxx
  1533.  2Dh    BYTE    number of shared directories
  1534.  2Eh    BYTE    number of shared printer queues
  1535.  
  1536. Bitfields for chat mask:
  1537. Bit(s)    Description
  1538.  0    chat permitted
  1539.  1    bell enabled
  1540.  2    chat keyboard initiated
  1541.  3    in INT 16 handler
  1542.  4    in Get Input
  1543.  5    display has timed out
  1544.  6    chat is idle
  1545.  
  1546. Bitfields for internal system bits:
  1547. Bit(s)    Description
  1548.  0    submit permitted
  1549.  1    submit initiated
  1550.  2    submit executing
  1551.  3    internal client call/chat/spool/autospool
  1552.  4    in spool termination
  1553.  5    print permitted
  1554.  6    waiting for keyboard input
  1555. --------N-6F9501-----------------------------
  1556. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  1557.     AX = 9501h
  1558.     BX = zero-based index
  1559.     DS:SI -> server's node ID
  1560.     ES:DI -> buffer for shared device structure (see below)
  1561. Return: CF clear if successful
  1562.     CF set on error
  1563.         AX = status (see AH=00h)
  1564. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  1565.  
  1566. Format of shared device structure:
  1567. Offset    Size    Description
  1568.  00h  8 BYTEs    alias
  1569.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  1570.  09h    BYTE    access rights
  1571.         bit 0: read
  1572.         bit 1: write
  1573.         bit 2: create
  1574.  0Ah  8 BYTEs    password
  1575.  12h 32 BYTEs    comment
  1576. ---directory---
  1577.  32h 64 BYTEs    pathname of shared directory
  1578. ---print queue---
  1579.  32h    BYTE    notification bit mask (see below)
  1580.  33h    BYTE    job control bit mask (see below)
  1581.  34h    WORD    number of days to retain file
  1582.  36h    WORD    test print length
  1583.  38h    BYTE    number of copies to print
  1584.  39h    BYTE    compression algorithm
  1585.  3Ah    BYTE    tab width (00h = don't expand)
  1586.  3Bh    BYTE    priority
  1587.  3Ch    WORD    time to open queue (FFFFh = always)
  1588.  3Eh    WORD    time to close queue
  1589.  40h    WORD    pause following queue switch, in clock ticks
  1590.  42h    WORD    pause between print jobs, in clock ticks
  1591.  44h    BYTE    associate queue file existence mask
  1592.         bit 0: queue switch file exists
  1593.         bit 1: initiate file exists
  1594.         bit 2: abort file exists
  1595.  45h  6 BYTEs    character sequence for page eject
  1596.  4Bh    BYTE    status of print queue
  1597.         bit 0: queue is closed
  1598.  4Ch    WORD    number of jobs on queue
  1599.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  1600.  50h    BYTE    number of print devices in printer pool
  1601.  51h    WORD    offset of first print device structure (FFFFh if empty)
  1602.  
  1603. Bitfields for notification flags:
  1604. Bit(s)    Description
  1605.  0    user at print start
  1606.  1    operator at start, with reply
  1607.  2    user at print completion
  1608.  3    operator at completion, with reply
  1609.  4    user on queue switch
  1610.  5    operator on queue switch, with reply
  1611.  6    user on print error
  1612.  
  1613. Bitfields for job control mask:
  1614. Bit(s)    Description
  1615.  0    print banner page
  1616.  1    eject page at end of job
  1617.  2    mark as "held" (queue but don't print)
  1618.  3    rush job (queue at top)
  1619.  4    overwrite file with zeros before deletion
  1620.  5    hyperspool if possible
  1621. --------N-6F9502-----------------------------
  1622. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  1623.     AX = 9502h
  1624.     DS:SI -> server's node ID
  1625.     ES:DI -> shared device structure (see AX=9501h)
  1626. Return: CF clear if successful
  1627.     CF set on error
  1628.         AX = status (see AH=00h)
  1629. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  1630. --------N-6F9503-----------------------------
  1631. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  1632.     AX = 9503h
  1633.     BX = zero-based index
  1634.     DS:SI -> server's node ID
  1635. Return: CF clear if successful
  1636.     CF set on error
  1637.         AX = status (see AH=00h)
  1638. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  1639. --------N-6F9504-----------------------------
  1640. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  1641.     AX = 9504h
  1642.     BX = zero-based shared device index
  1643.     CX = zero-based user index
  1644.     DS:SI -> server's node ID
  1645. Return: CF clear if successful
  1646.         ES:DI -> node ID of the CX'th user of the BX'th device
  1647.     CF set on error
  1648.         AX = status (see AH=00h)
  1649. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  1650. --------N-6F99-------------------------------
  1651. INT 6F - 10NET v5.0 - AUDIT
  1652.     AH = 99h
  1653.     DS:SI -> server's node ID
  1654.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  1655. Return: CF clear if successful
  1656.     CF set on error
  1657.         AX = status (see AH=00h)
  1658. SeeAlso: AH=19h,AH=9Ch
  1659. --------N-6F9C-------------------------------
  1660. INT 6F - 10NET v5.0 - GET LOGIN LIST
  1661.     AH = 9Ch
  1662.     BX = zero-based index
  1663. Return: CF clear if successful
  1664.         DS:DI -> BX'th node ID that caller's machine is logged into
  1665.     CF set on error
  1666.         AX = status (see AH=00h)
  1667. --------H-70---------------------------------
  1668. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  1669. Desc:    this interrupt is called when the real-time clock chip generates an
  1670.       alarm or periodic interrupt, among others.  The periodic interrupt
  1671.       occurs 1024 times per second.
  1672. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  1673.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  1674.     may be masked by setting bit 0 on I/O port A1h
  1675. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  1676. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  1677. --------v-70---------------------------------
  1678. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  1679. Note:    the virus sets this interrupt to be the same as INT 21, and then
  1680.       performs only INT 70 calls; since INT 70 is also generated by the
  1681.       real-time clock on the PC/AT and higher, this could cause random
  1682.       actions on an infected system
  1683. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  1684. --------H-71---------------------------------
  1685. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  1686. Notes:    may be masked by setting bit 1 on I/O port A1h
  1687.     the default BIOS handler invokes INT 0A for compatibility, since the
  1688.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  1689.       AT expansion bus.
  1690.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1691.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1692.       process
  1693. SeeAlso: INT 0A,INT 59
  1694. --------H-72---------------------------------
  1695. INT 72 - IRQ10 - RESERVED
  1696. Note:    may be masked by setting bit 2 on I/O port A1h
  1697. SeeAlso: INT 5A
  1698. --------H-73---------------------------------
  1699. INT 73 - IRQ11 - RESERVED
  1700. Note:    may be masked by setting bit 3 on I/O port A1h
  1701. SeeAlso: INT 5B
  1702. --------H-74---------------------------------
  1703. INT 74 - IRQ12 - POINTING DEVICE (PS)
  1704. Notes:    may be masked by setting bit 4 on I/O port A1h
  1705.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1706.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1707.       process
  1708. SeeAlso: INT 33,INT 5C
  1709. --------H-75---------------------------------
  1710. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  1711.    redirected to INT 02 by the BIOS, for compatibility with the PC
  1712. Notes:    may be masked by setting bit 5 on I/O port A1h
  1713.     not all clones wire the coprocessor to generate this IRQ; some systems
  1714.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  1715.       (see INT 10"COPROCESSOR")
  1716.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1717.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1718.       process
  1719. SeeAlso: INT 10"COPROCESSOR",INT 5D
  1720. --------H-76---------------------------------
  1721. INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)
  1722. Note:    may be masked by setting bit 6 on I/O port A1h
  1723. SeeAlso: INT 0E"IRQ6",INT 5E
  1724. --------H-77---------------------------------
  1725. INT 77 - IRQ15 - RESERVED (AT,PS)
  1726. Note:    may be masked by setting bit 7 on I/O port A1h
  1727. SeeAlso: INT 5F
  1728. --------H-77---------------------------------
  1729. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  1730. Note:    may be masked by setting bit 7 on I/O port A1h
  1731. SeeAlso: INT 15/AX=4600h,INT 5F
  1732. --------E-78---------------------------------
  1733. INT 78 - UofSalford DBOS DOS extender - API
  1734.     AH = function
  1735.         00h (PB) display 32-bit memory specified by command argument
  1736.         01h (PT) display 32-bit instruction(s) specified by command arg
  1737.         02h specify offset to subsequent PB and PT commands
  1738.         03h switch to protected mode
  1739.         DWORD following INT instruction point to map; protected-mode
  1740.             entry point is immediately following the DWORD
  1741.         Return: never
  1742.         Note:    if bit 31 of the map address is set, only a stub was
  1743.               loaded by DOS and DBOS will load the entire program
  1744.         04h specify that subsequent load (AH=03h) should leave program in
  1745.         memory
  1746.         05h release program from memory
  1747.         06h set break point at address and option count from commandline
  1748.         07h resume program execution
  1749.         08h single-step program
  1750.         09h set read/write breakpoint using 386 debug registers
  1751.         0Ah set write breakpoint using 386 debug register
  1752.         0Bh set memory byte to new value
  1753.         0Ch display CPU registers
  1754.         0Dh run until specified program address reached
  1755.         0Fh print trace from program map
  1756.         10h specify an offset using a map symbol
  1757.         14h print memory without any offset
  1758.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  1759.         1Dh get address of real/protected-mode communication buffer
  1760.         Return: ES:BP -> comm buffer
  1761.         1Eh set real-mode memory size (specify how much real-mode memory
  1762.           to leave free when running FTN77 programs)
  1763.         22h uninstall DBOS
  1764.         24h force DBOS to emulate coprocessor instructions
  1765.         26h set named DBOS switches from commandline
  1766.         27h reset named DBOS switched from commandline
  1767.         2Ah set list of dynamic link libraries to contents of commandline
  1768.         file
  1769.         35h specify that subsequent load (AH=03h) should stop at first
  1770.         instruction
  1771. Return: ???
  1772. Notes:    DBOS supports functions 00h through 50h; many of these functions
  1773.       provide a low-level debugging interface
  1774.     command arguments are read from the calling program's PSP
  1775. SeeAlso: INT 79"DBOS"
  1776. Index:    uninstall;DBOS DOS extender
  1777. --------E-78---------------------------------
  1778. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  1779. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  1780.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  1781. Note:    this vector is overwritten when GO32 starts but is not restored by
  1782.       early versions of the extender
  1783. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  1784. --------A-78---------------------------------
  1785. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  1786.     AX = function
  1787.         0001h begin plot
  1788.         BX = file level
  1789.             0000h ASCII file
  1790.             0001h binary file
  1791.             0002h AutoCAD DXB file
  1792.             0003h installed ADI driver
  1793.         0002h end plot (close plotter)
  1794.         0003h move (pen up)
  1795.         BX = new X position
  1796.         CX = new Y position
  1797.         0004h move (pen down)
  1798.         BX = new X position
  1799.         CX = new Y position
  1800.         0005h select pen
  1801.         BX = pen number
  1802.         0006h select drawing speed
  1803.         BX = drawing speed N
  1804.         0007h select line style
  1805.         BX = line style N
  1806.         0008h raise pen
  1807.         0009h abort plot
  1808. Return: AX = 0000h (may be used for driver status in future releases)
  1809. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  1810. --------d-78---------------------------------
  1811. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  1812. SeeAlso: INT 79"ADP-60"
  1813. --------d-7800-------------------------------
  1814. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  1815.     AH = 00h
  1816.     DX = interface board I/O port
  1817. Return: CF set on error
  1818.         AL = error code (see below)
  1819. Note:    if this routine is not called, the port is the driver's default
  1820.       (usually 0280h or 0300h)
  1821.     an installation check is performed by TARGA.DEV upon initialization
  1822.       by checking for the string "SCSI" at offset 03h into the interrupt
  1823.       handler
  1824. SeeAlso: AH=01h,AH=02h
  1825. Index:    installation check;TARGA.DEV
  1826.  
  1827. Values for error code:
  1828.  00h    illegal command given to SCSI code
  1829.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  1830.       an 8-port boundary)
  1831.  02h    invalid DMA channel specified (must be from 1 to 3)
  1832.  03h    invalid SCSI board number specified (must be from 0 to 7)
  1833.  04h    error from data register test during self-test
  1834.  05h    SCSI input signals not all 0 when SCSI RST activated
  1835.  06h    SCSI input signals not all 0 before selecting a SCSI device
  1836.  07h    BSY signal is active; SCSI bus is busy
  1837.  08h    SCSI board not selected, BSY signal did not come on in response to
  1838.       raising SEL
  1839.  09h    time-out waiting for status state, signifying end of DMA transfer
  1840. --------d-7801-------------------------------
  1841. INT 78 - TARGA.DEV - GET I/O PORT
  1842.     AH = 01h
  1843. Return: DX = current interface board I/O port
  1844. SeeAlso: AH=00h,AH=03h"TARGA"
  1845. --------d-7802-------------------------------
  1846. INT 78 - TARGA.DEV - SET DMA CHANNEL
  1847.     AH = 02h
  1848.     AL = interface board DMA channel
  1849. Return: CF set on error
  1850.     AL = error code (see AH=00h)
  1851. Note:    if this routine is not called, the DMA channel is the driver's default
  1852.       (usually 3)
  1853. SeeAlso: AH=00h,AH=03h"TARGA"
  1854. --------d-7803-------------------------------
  1855. INT 78 - TARGA.DEV - GET DMA CHANNEL
  1856.     AH = 03h
  1857. Return: AL = current interface board DMA channel
  1858. SeeAlso: AH=01h,AH=02h
  1859. --------d-7804-------------------------------
  1860. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  1861.     AH = 04h
  1862.     AL = SCSI device number
  1863. Return: CF set on error
  1864.     AL = error code (see AH=00h)
  1865. Note:    if this routine is not called, the device number used is the driver's
  1866.       default (usually 0)
  1867. SeeAlso: AH=02h,AH=05h
  1868. --------d-7805-------------------------------
  1869. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  1870.     AH = 05h
  1871. Return: AL = current SCSI device number
  1872. SeeAlso: AH=03h"TARGA",AH=04h
  1873. --------d-7806-------------------------------
  1874. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  1875.     AH = 06h
  1876.     AL = 00h clear early return mode
  1877.        = 01h set early return mode
  1878. Note:    if early return mode is set then SCSI will return with no errors
  1879.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  1880.     if this routine is not called, early return mode is cleared
  1881. SeeAlso: AH=13h,AH=14h,AH=15h
  1882. --------d-7808-------------------------------
  1883. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  1884.     AH = 08h
  1885. Return: CF set on error
  1886.     AL = error code (see AH=00h)
  1887. Note:    the SCSI bus is also reset
  1888. SeeAlso: AH=09h
  1889. --------d-7809-------------------------------
  1890. INT 78 - TARGA.DEV - RESET SCSI BUS
  1891.     AH = 09h
  1892. Return: AL = error code if carry set (see AH=00h)
  1893. SeeAlso: AH=08h
  1894. --------d-7810-------------------------------
  1895. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  1896.     AH = 10h
  1897.     DS:SI -> command bytes
  1898. Return: AH = SCSI status byte
  1899.     CF clear if successful
  1900.         AL = SCSI message byte
  1901.     CF set on error
  1902.         AL = error code (see AH=00h)
  1903. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  1904.  
  1905. Format of SCSI Command:
  1906. Offset    Size    Description
  1907.  00h    BYTE    length of command
  1908.  01h    ???    command bytes
  1909. --------d-7811-------------------------------
  1910. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  1911.     AH = 11h
  1912.     DS:SI -> command bytes
  1913.     ES:BX -> data storage area
  1914.     CX = number of data bytes to transfer
  1915. Return: AH = SCSI status byte
  1916.     CF clear if successful
  1917.         AL = SCSI message byte
  1918.     CF set on error
  1919.         AL = error code (see AH=00h)
  1920. Note:    this command receives data internally one byte at a time
  1921. SeeAlso: AH=10h,AH=13h
  1922.  
  1923. Format of SCSI Command:
  1924. Offset    Size    Description
  1925.  00h    BYTE    length of command
  1926.  01h    ???    command bytes
  1927. --------d-7812-------------------------------
  1928. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  1929.     AH = 12h
  1930.     DS:SI -> command bytes
  1931.     ES:BX -> data storage area
  1932.     CX = number of data bytes to transfer
  1933. Return: AH = SCSI status byte
  1934.     CF clear if successful
  1935.         AL = SCSI message byte
  1936.     CF set on error
  1937.         AL = error code (see AH=00h)
  1938. Note:    this command sends data internally one byte at a time
  1939. SeeAlso: AH=14h
  1940.  
  1941. Format of SCSI Command:
  1942. Offset    Size    Description
  1943.  00h    BYTE    length of command
  1944.  01h    ???    command bytes
  1945. --------d-7813-------------------------------
  1946. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  1947.     AH = 13h
  1948.     DS:SI -> command bytes
  1949.     ES:BX -> data storage area
  1950.     DX:CX = number of data bytes to transfer
  1951. Return: AH = SCSI status byte (if early return mode is clear)
  1952.     CF clear if successful
  1953.         AL = SCSI message byte (if early return mode is clear)
  1954.     CF set on error
  1955.         AL = error code (see AH=00h)
  1956. Note:    this command receives data using DMA
  1957. SeeAlso: AH=11h,AH=12h
  1958.  
  1959. Format of SCSI Command:
  1960. Offset    Size    Description
  1961.  00h    BYTE    length of command
  1962.  01h    ???    command bytes
  1963. --------d-7814-------------------------------
  1964. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  1965.     AH = 14h
  1966.     DS:SI -> command bytes
  1967.     ES:BX -> data storage area
  1968.     DX:CX = number of data bytes to transfer
  1969. Return: AH = SCSI status byte (if early return mode is clear)
  1970.     CF clear if successful
  1971.         AL = SCSI message byte (if early return mode is clear)
  1972.     CF set on error
  1973.         AL = error code (see AH=00h)
  1974. Note:    this command sends data using DMA
  1975. SeeAlso: AH=12h,AH=13h
  1976.  
  1977. Format of SCSI Command:
  1978. Offset    Size    Description
  1979.  00h    BYTE    length of command
  1980.  01h    ???    command bytes
  1981. --------d-7815-------------------------------
  1982. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  1983.     AH = 15h
  1984. Return: AH = SCSI status byte
  1985.     CF clear if successful
  1986.         AL = SCSI message byte
  1987.     CF set on error
  1988.         AL = error code (see AH=00h)
  1989. Note:    if AH=06h was previously called to set the early return mode, this
  1990.       function finishes a command AH=13h or AH=14h which returned before
  1991.       the last DMA transfer was finished
  1992. SeeAlso: AH=06h,AH=13h,AH=14h
  1993. --------V-79---------------------------------
  1994. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  1995. Return: CF set if no keystroke available
  1996.         AX = FFFFh
  1997.     CF clear if key pressed
  1998.         AX = keystroke
  1999. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  2000.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  2001. Note:    if a keystroke is available, it is removed from the keyboard buffer
  2002.       before being returned
  2003. SeeAlso: INT 29
  2004. --------E-79---------------------------------
  2005. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  2006. Note:    this vector is overwritten when GO32 starts but is not restored by
  2007.       early versions of the extender
  2008. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  2009. --------d-79---------------------------------
  2010. INT 79 U - ADP-60 IDE adapter - ???
  2011. SeeAlso: INT 78"ADP-60"
  2012. --------E-79---------------------------------
  2013. INT 79 - DBOS DOS Extender
  2014.     details not available
  2015. Desc:    this interrupt is used by an MS Windows virtual device driver with
  2016.       which the DBOS extender communicates when run inside a Windows
  2017.       Enhanced Mode DOS box
  2018. SeeAlso: INT 78"DBOS"
  2019. --------A-790001-----------------------------
  2020. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  2021.     AX = 0001h
  2022.     BX = interface level (0001h)
  2023. Return: AX = status (0000h initialization failed, 0001h init successful)
  2024.     BX = digitizer type
  2025.         0000h relative pointing device (mouse, etc.)
  2026.         0001h digitizing tablet
  2027.     CX = digitizer dataflow type
  2028.         0000h continuous
  2029.         0001h pauses between packets
  2030. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  2031. --------A-790002-----------------------------
  2032. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  2033.     AX = 0002h
  2034. SeeAlso: AX=0001h,AX=0003h
  2035. --------A-790003-----------------------------
  2036. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  2037.     AX = 0003h
  2038. Return: AX = status
  2039.         0000h nothing
  2040.         0002h tracking point (no button pressed)
  2041.         BX = X coordinate
  2042.         CX = Y coordinate
  2043.         0003h picked point (button 0,A,B,C,D pressed)
  2044.         BX = X coordinate
  2045.         CX = Y coordinate
  2046.         0004h button pick
  2047.         BX = button number
  2048.         0005h button and coordinates
  2049.         BX = button number
  2050.         CX = X coordinate
  2051.         DX = Y coordinate
  2052. SeeAlso: AX=0001h,AX=0002h
  2053. --------N-7A---------------------------------
  2054. INT 7A U - Topware Network Operating System - ???
  2055.     AL = ???
  2056.     ???
  2057. Return: ???
  2058. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  2059. --------N-7A---------------------------------
  2060. INT 7A - X.PC Packet software interface
  2061.     ES:BX -> parameter block
  2062. SeeAlso: INT 60/AX=01FFh
  2063. --------E-7A---------------------------------
  2064. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  2065. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2066.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2067. Note:    this vector is overwritten when GO32 starts but is not restored by
  2068.       early versions of the extender
  2069. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  2070. --------P-7A---------------------------------
  2071. INT 7A O - PRINDIR - API (moved to INT 7C)
  2072. SeeAlso: INT 7C"PRINDIR"
  2073. --------N-7A---------------------------------
  2074. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  2075. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  2076.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2077.       entry point even though INT 7A still exists.    For both INT 7A and
  2078.       the FAR entry point, BX contains the function number; IPX is
  2079.       sometimes called internally with BX bit 15 set, which causes the
  2080.       handler to bypass some initial checks and an optional call to the
  2081.       IPX special handler set with INT 2F/AX=7AFFh/BX=0000h.
  2082. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  2083. --------N-7A----BX0000-----------------------
  2084. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  2085.     BX = 0000h
  2086.     AL = socket longevity
  2087.         00h open until close or terminate
  2088.         FFh open until close
  2089.     DX = socket number (high byte in DL)
  2090.         0000h dynamic allocation
  2091.         else  socket to open (see below)
  2092. Return: AL = return code
  2093.         00h success
  2094.         DX = socket number
  2095.         FEh socket table full
  2096.         FFh socket already open
  2097. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  2098.       programs should normally use AL=00h
  2099.     IPX can be configured to support up to 150 open sockets on a
  2100.       workstation, and defaults to 20
  2101.     this function is supported by Advanced NetWare 1.02+
  2102. SeeAlso: BX=0001h,BX=0004h
  2103.  
  2104. Values for socket number:
  2105.  0451h    File Service (NetWare Core Protocol)
  2106.  0452h    Service Advertising Protocol
  2107.  0453h    Routing Information Packet
  2108.  0455h    NetBIOS Packet
  2109.  0456h    diagnostics
  2110.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  2111.  4000h-7FFFh used for dynamic allocation
  2112.  4444h    Brightwork Development's SiteLock server
  2113.  5555h    Brightwork Development's SiteLock client (workstation)
  2114.  8000h-FFFFh assigned by Novell
  2115. Note:    SiteLock is an application metering product using IPX to communicate
  2116.       between the application and the license server
  2117. --------N-7A----BX0001-----------------------
  2118. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  2119.     BX = 0001h
  2120.     DX = socket number (high byte in DL)
  2121. Notes:    also cancels events set by any Event Control Blocks for the socket
  2122.     the program must close all open sockets before terminating
  2123.     this function is supported by Advanced NetWare 1.02+
  2124. SeeAlso: BX=0000h
  2125. --------N-7A----BX0002-----------------------
  2126. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  2127.     BX = 0002h
  2128.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  2129.     ES:DI -> 6-byte buffer for local target
  2130. Return: AL = return code
  2131.         00h success
  2132.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  2133.             packet
  2134.            ES:DI -> local target
  2135.         FAh unsuccessful (no path to destination)
  2136. Notes:    the internetwork address consists of a 4-byte network address followed
  2137.       by a 6-byte node address.  The local target is only a 6-byte node
  2138.       address.  If the target is in the same network, the local target is
  2139.       just the node address of target; otherwise, the local target is the
  2140.       node address of the bridge that leads to the target.
  2141.     this function may be called from inside IPX and AES Event Service
  2142.       Routines, but not from other interrupt handlers
  2143.     this function is supported by Advanced NetWare 1.02+
  2144. SeeAlso: BX=0009h
  2145. --------N-7A----BX0003-----------------------
  2146. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  2147.     BX = 0003h
  2148.     ES:SI -> Event Control Block (see below)
  2149. Notes:    returns immediately; IPX attempts to send the packet in the background
  2150.     this function is supported by Advanced NetWare 1.02+
  2151.     this function is nearly identical to BX=000Fh, except that it always
  2152.       copies the source address into the IPX header assumed to be at the
  2153.       beginning of the first fragment
  2154. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  2155.  
  2156. Format of Event Control Block:
  2157. Offset    Size    Description
  2158.  00h    DWORD    Link
  2159.  04h    DWORD    -> Event Service Routine (00000000h if none)
  2160.  08h    BYTE    in use flag (see below)
  2161.  09h    BYTE    completion code (see below)
  2162.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  2163.  0Ch  4 BYTEs    IPX workspace
  2164.  10h 12 BYTEs    driver workspace
  2165.  1Ch  6 BYTEs    immediate local node address
  2166.  22h    WORD    fragment count
  2167.  24h    var    fragment descriptors
  2168.         Offset    Size    Description
  2169.          00h    DWORD    -> fragment data
  2170.          04h    WORD    size of fragment in bytes.
  2171. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  2172.       On call, the in use flag is zero if the ECB has been handled,
  2173.       non-zero otherwise. If the flag is zero, the completion code holds
  2174.       the result of the event.
  2175.     the first fragment should start with an IPX header
  2176.     all fragments are concatenated and sent in one piece
  2177.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  2178.  
  2179. Format of AES-ECB:
  2180. Offset    Size    Description
  2181.  00h    DWORD    Link
  2182.  04h    DWORD    ESR address
  2183.  08h    BYTE    in use flag (see below)
  2184.  09h  5 BYTEs    AES workspace
  2185.  
  2186. Values for ECB in use flag:
  2187.  00h    available
  2188.  E0h    AES temporary
  2189.  F6h    \ special IPX/SPX processing for v3.02+
  2190.  F7h    /
  2191.  F8h    IPX in critical section
  2192.  F9h    SPX listening
  2193.  FAh    processing
  2194.  FBh    holding
  2195.  FCh    AES waiting
  2196.  FDh    AES couting down delay time
  2197.  FEh    awaiting packet reception
  2198.  FFh    sending packet
  2199.  
  2200. Values for ECB completion code:
  2201.  00h    success
  2202.  ECh    remote terminated connection without acknowledging packet
  2203.  EDh    abnormal connection termination
  2204.  EEh    invalid connection ID
  2205.  EFh    SPX connection table full
  2206.  F9h    event should not be cancelled
  2207.  FAh    cannot establish connection with specified destination
  2208.  FCh    cancelled
  2209.  FDh    malformed packet
  2210.  FEh    packet undeliverable
  2211.  FFh    physical error
  2212.  
  2213. Event Service Routine called with:
  2214.     AL = caller's identity (00h = AES, FFh = IPX)
  2215.     ES:SI -> event control block
  2216.     interrupts disabled
  2217.  
  2218. Format of IPX header:
  2219. Offset    Size    Description
  2220.  00h    WORD    (big-endian) checksum
  2221.  02h    WORD    (big-endian) length in bytes of total packet
  2222.  04h    BYTE    transport control
  2223.  05h    BYTE    packet type (see below)
  2224.  06h 10 BYTEs    destination internetwork address
  2225.  10h    WORD    (big-endian) destination socket
  2226.  12h 10 BYTEs    source internetwork address
  2227.  1Ch    WORD    (big-endian) source socket
  2228.  
  2229. Values for IPX packet type:
  2230.  00h    unknown packet type
  2231.  01h    routing information packet
  2232.  02h    echo packet
  2233.  03h    error packet
  2234.  04h    packet exchange packet (always use this one)
  2235.  05h    SPX packet
  2236.  11h    NetWare Core Protocol
  2237.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  2238.  15h-1Eh experimental protocols
  2239.  
  2240. Format of Service Advertising Protocol Service Query Packet:
  2241. Offset    Size    Description
  2242.  00h 30 BYTEs    IPX header
  2243.  1Eh    WORD    (big-endian) query type
  2244.         0001h general find service
  2245.         0003h find nearest server
  2246.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  2247.  
  2248. Format of Service Advertising Protocol Server Identification Packet:
  2249. Offset    Size    Description
  2250.  00h 30 BYTEs    IPX header
  2251.  1Eh    WORD    (big-endian) response type
  2252.         0002h general service
  2253.         0004h nearest service
  2254.  20h 64N BYTEs    server entries (1-7) (see below)
  2255.  
  2256. Format of SAP server entry:
  2257. Offset    Size    Description
  2258.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  2259.  02h 48 BYTEs    ASCIZ server name
  2260.  32h  2 WORDs    (big-endian) network number
  2261.  34h  3 WORDs    (big-endian) node number
  2262.  3Ch    WORD    (big-endian) socket number
  2263.  3Eh    WORD    (big-endian) number of hops between caller and server
  2264.  
  2265. Format of Routing Information packet:
  2266. Offset    Size    Description
  2267.  00h 30 BYTEs    IPX header
  2268.  1Eh    WORD    operation (0001h request, 0002h response)
  2269.  20h 8N BYTEs    network entries (1-50) (see below)
  2270.  
  2271. Format of RIP network entry:
  2272. Offset    Size    Description
  2273.  00h    DWORD    network number (FFFFFFFFh = general request)
  2274.  04h    WORD    (response) number of hops
  2275.  06h    WORD    (response) number of clock ticks to reach destination
  2276. --------N-7A----BX0004-----------------------
  2277. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  2278.     BX = 0004h
  2279.     ES:SI -> Event Control Block (see BX=0003h)
  2280. Return: AL = status
  2281.         00h successful
  2282.         FFh no listening socket for packet
  2283. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  2284.       does not wait for a packet to arrive
  2285. Notes:    the application must open a socket and initialize the ECB's ESR
  2286.       address, socket number, fragment count, and fragment descriptor
  2287.       fields before invoking this function
  2288.     there is no limit on the number of ECBs which may simultaneously be
  2289.       listening on a socket
  2290.     this function is supported by Advanced NetWare 1.02+
  2291. SeeAlso: BX=0000h,BX=0003h
  2292. --------N-7A----BX0005-----------------------
  2293. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  2294.     BX = 0005h
  2295.     AX = delay time in clock ticks
  2296.     ES:SI -> Event Control Block (see BX=0003h)
  2297. Note:    this function is supported by Advanced NetWare 1.02+
  2298. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  2299. --------N-7A----BX0006-----------------------
  2300. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  2301.     BX = 0006h
  2302.     ES:SI -> Event Control Block (see BX=0003h)
  2303. Return: AL = return code
  2304.         00h success
  2305.         F9h event in use
  2306.         FCh event cancelled
  2307.         FFh unsuccessful, event not in use, or unrecognized ECB flag
  2308. Notes:    cannot cancel packets which the node's driver has already sent
  2309.     this function is supported by Advanced NetWare 1.02+
  2310. SeeAlso: BX=0005h
  2311. --------N-7A----BX0007-----------------------
  2312. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  2313.     BX = 0007h
  2314.     AX = delay time
  2315.     ES:SI -> Event Control Block (see BX=0003h)
  2316. Note:    this function is supported by Advanced NetWare 1.02+
  2317. SeeAlso: BX=0006h
  2318. --------N-7A----BX0008-----------------------
  2319. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  2320.     BX = 0008h
  2321. Return: AX = interval marker in clock ticks
  2322. Notes:    may be used to measure the time elapsed between two events, up to one
  2323.       hour
  2324.     this function is supported by Advanced NetWare 1.02+
  2325. SeeAlso: BX=0005h
  2326. --------N-7A----BX0009-----------------------
  2327. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  2328.     BX = 0009h
  2329.     ES:SI -> buffer for own internetwork address (see below)
  2330. Return: ES:SI buffer filled
  2331.     SI destroyed
  2332. Note:    this function is supported by Advanced NetWare 1.02+
  2333. SeeAlso: BX=0002h,BX=000Bh
  2334.  
  2335. Format of internetwork address:
  2336. Offset    Size    Description
  2337.  00h  4 BYTEs    (big-endian) network number
  2338.  04h  6 BYTEs    (big-endian) node number within network
  2339. --------N-7A----BX000A-----------------------
  2340. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  2341.     BX = 000Ah
  2342. Desc:    this call indicates that the application is idle and permits the IPX
  2343.       driver to do some work
  2344. Note:    this function is supported by Advanced NetWare 1.02+
  2345. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  2346. --------N-7A----BX000B-----------------------
  2347. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  2348.     BX = 000Bh
  2349.     ES:SI -> internetwork address (see below)
  2350. Notes:    this function permits the network software on the remote machine to
  2351.       remove any virtual connection with the calling machine
  2352.     only use in point-to-point networks
  2353.     should never be called from within an Event Service Routine
  2354.     this function is supported by Advanced NetWare 1.02+
  2355. SeeAlso: BX=0002h,BX=0009h
  2356.  
  2357. Format of internetwork address:
  2358. Offset    Size    Description
  2359.  00h  4 BYTEs    (big-endian) destination network
  2360.  04h  6 BYTEs    (big-endian) destination node
  2361.  0Ah  2 BYTEs    (big-endian) destination socket
  2362. --------N-7A----BX000C-----------------------
  2363. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  2364.     BX = 000Ch
  2365.     CX:DX = global network address (see INT 7A/BX=0002h)
  2366.     ES:DI -> "OSINCRITICALSECTION" flag
  2367.     DS:SI -> current mode for socket
  2368. Note:    the address cannot be changed once it has been initialized
  2369. --------N-7A----BX000D-----------------------
  2370. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  2371.     BX = 000Dh
  2372. Return: AX = maximum packet size
  2373.     CX = retry count
  2374. SeeAlso: BX=001Ah
  2375. --------N-7A----BX000E-----------------------
  2376. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  2377.     BX = 000Eh
  2378. Return: nothing
  2379. Note:    this function terminates all sockets opened with the current mode; this
  2380.       may be intended for future enhancements as the socket mode never
  2381.       changes in v2.15
  2382. --------N-7A----BX000F-----------------------
  2383. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  2384.     BX = 000Fh
  2385.     ES:SI -> Event Control Block (see BX=0003h)
  2386. Note:    nearly identical to function 0003h, but does not copy address into
  2387.       the first fragment
  2388. SeeAlso: BX=0003h
  2389. --------N-7A----BX0010-----------------------
  2390. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  2391.     BX = 0010h
  2392.     AL = 00h
  2393. Return: AL = FFh if SPX loaded
  2394.         BH = SPX major version
  2395.         BL = SPX minor version
  2396.         CX = maximum SPX connections
  2397.         DX = SPX connections available
  2398. Note:    this function is supported by Advanced NetWare 2.1+
  2399.     this interrupt is used for IPX/SPX access in NetWare versions through
  2400.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2401.       entry point even though INT 7A still exists.    For both INT 7A and
  2402.       the FAR entry point, BX contains the function number; IPX is
  2403.       sometimes called internally with BX bit 15 set, which causes the
  2404.       entry point handler to bypass some checks and an optional call to
  2405.       the IPX special handler set with INT 2F/AX=7AFFh/BX=0000h.
  2406. SeeAlso: BX=0015h
  2407. --------N-7A----BX0011-----------------------
  2408. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  2409.     BX = 0011h
  2410.     AL = retry count
  2411.     AH = watchdog flag
  2412.     ES:SI -> Event Control Block (see BX=0003h)
  2413. Return: AL = status
  2414.         00h attempting to contact destination socket
  2415.         EFh local connection table full
  2416.         FDh buffer size not 42 or fragment count not 1
  2417.         FFh sending socket not open
  2418.     DX = assigned connection ID number
  2419. Desc:    attempt to establish a connection with a listening socket
  2420. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2421.       that NetWare can perform its internal packet exchanges
  2422.     the first fragment should start with a SPX header.  Fill in all
  2423.       destination addresses.
  2424.     this function is supported by Advanced NetWare 2.1+
  2425. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  2426.  
  2427. Format of SPX header:
  2428. Offset    Size    Description
  2429.  00h    WORD    (big-endian) checksum
  2430.  02h    WORD    (big-endian) length in bytes of total packet
  2431.  04h    BYTE    transport control
  2432.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  2433.  06h 10 BYTEs    destination internet address
  2434.  10h    WORD    (big-endian) destination socket
  2435.  12h 10 BYTEs    source internet address
  2436.  1Ch    WORD    (big-endian) source socket
  2437.  1Eh    BYTE    connection control (see below)
  2438.  1Fh    BYTE    datastream type
  2439.         FEh terminate connection request packet
  2440.         FFh terminate connection acknowledgement packet
  2441.         other user-defined, ignored by SPX
  2442.  20h    WORD    (big-endian) source connection ID
  2443.  22h    WORD    (big-endian) destination connection ID
  2444.  24h    WORD    (big-endian) sequence number
  2445.  26h    WORD    (big-endian) acknowledge number
  2446.  28h    WORD    (big-endian) allocation number
  2447.  
  2448. Bitfields for connection control:
  2449. Bit(s)    Description
  2450.  3-0    unused???
  2451.  4    end of message
  2452.  5    reserved
  2453.  6    acknowledgement required
  2454.  7    system packet
  2455. --------N-7A----BX0012-----------------------
  2456. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  2457.     BX = 0012h
  2458.     AH = watchdog flag
  2459.         00h disabled
  2460.         01h enabled
  2461.     AL = retry count (00h = default)
  2462.     ES:SI -> Event Control Block (see BX=0003h)
  2463. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2464.       that NetWare can perform its internal packet exchanges
  2465.     this function is supported by Advanced NetWare 2.1+
  2466. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  2467. --------N-7A----BX0013-----------------------
  2468. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  2469.     BX = 0013h
  2470.     DX = connection ID to terminate
  2471.     ES:SI -> Event Control Block (see BX=0003h)
  2472. Note:    this function is supported by Advanced NetWare 2.1+
  2473. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  2474. --------N-7A----BX0014-----------------------
  2475. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  2476.     BX = 0014h
  2477.     DX = connection ID to terminate
  2478. Notes:    this function is supported by Advanced NetWare 2.1+
  2479.     this function does not tell the other side that the connection has been
  2480.       terminated
  2481.     also aborts any outstanding Establish Connection, Terminate Connection,
  2482.       and Send Sequenced Packet commands
  2483. SeeAlso: BX=0011h,BX=0013h
  2484. --------N-7A----BX0015-----------------------
  2485. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  2486.     BX = 0015h
  2487.     DX = connection ID
  2488.     ES:SI -> status buffer (see below)
  2489. Return: AL = return code
  2490.         00h connection still valid
  2491.         ES:SI -> status buffer filled
  2492.         EEh no such connection
  2493. Note:    this function is supported by Advanced NetWare 2.1+
  2494. SeeAlso: BX=0010h,BX=0011h
  2495.  
  2496. Format of status buffer:
  2497. Offset    Size    Description
  2498.  00h    BYTE    connection state
  2499.         01h waiting to establish connection
  2500.         02h starting (attempting to create connection)
  2501.         03h connection established
  2502.         04h terminating
  2503.  01h    BYTE    watchdog flag
  2504.         bit 0: used internally by SPX
  2505.         bit 1: SPX watchdog is monitoring connection
  2506.         bits 2-7 used internally by SPX
  2507.  02h    WORD    (big-endian) source connection ID
  2508.  04h    WORD    (big-endian) destination connection ID
  2509.  06h    WORD    (big-endian) sequence number of next packet sent
  2510.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  2511.           next received packet
  2512.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  2513.           without ACK from local SPX
  2514.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  2515.           remote SPX expects to receive
  2516.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  2517.           local SPX may send
  2518.  10h    WORD    (big-endian) connection socket
  2519.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  2520.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  2521.  22h    WORD    (big-endian) retransmit count
  2522.  24h    WORD    (big-endian) estimated roundtrip delay
  2523.  26h    WORD    (big-endian) retransmitted packets
  2524.  28h    WORD    (big-endian) suppressed packets
  2525.  2Ah 12 BYTEs    ??? (v2.15)
  2526. --------N-7A----BX0016-----------------------
  2527. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  2528.     BX = 0016h
  2529.     DX = connection ID
  2530.     ES:SI -> Event Control Block (see BX=0003h)
  2531. Notes:    this function is supported by Advanced NetWare 2.1+
  2532.     CX may need to be 0001h ???
  2533. SeeAlso: BX=0011h,BX=0017h
  2534. --------N-7A----BX0017-----------------------
  2535. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  2536.     BX = 0017h
  2537.     DX = connection ID (unused in v2.15)
  2538.     ES:SI -> Event Control Block (see BX=0003h)
  2539. Notes:    this function is supported by Advanced NetWare 2.1+
  2540.     CX may need to be 0001h ???
  2541. SeeAlso: BX=0011h,BX=0016h
  2542. --------N-7A----BX0018-----------------------
  2543. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  2544.     BX = 0018h
  2545.     ES:SI -> diagnostic element (see below) to be added to Diagnostic Queue
  2546. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2547.       supports it on workstations
  2548. SeeAlso: BX=0019h
  2549.  
  2550. Format of diagnostic element:
  2551. Offset    Size    Description
  2552.  00h    DWORD    pointer to next diagnostic element
  2553.  04h    DWORD    pointer to function for ???
  2554.  08h    DWORD    pointer to function for ???
  2555. --------N-7A----BX0019-----------------------
  2556. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  2557.     BX = 0019h
  2558.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  2559. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2560.       supports it on workstations
  2561. SeeAlso: BX=0018h
  2562. --------N-7A----BX001A-----------------------
  2563. INT 7A - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  2564.     BX = 001Ah
  2565. Return: AX = packet size with preamble
  2566.     CX = IPX retry count
  2567. Note:    this function is has existed since November 1989; it is documented in
  2568.       Novell document FYI.A.3709, 03May91
  2569. SeeAlso: BX=000Dh
  2570. --------N-7A----BX001B-----------------------
  2571. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  2572.     BX = 001Bh
  2573.     ???
  2574. Return: ???
  2575. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2576.       supports it on workstations
  2577. --------N-7A----BX001C-----------------------
  2578. INT 7A U - Novell NetWare - IPXODI v2.12 - NOP
  2579.     BX = 001Ch to 001Eh
  2580. Return: nothing
  2581.     BX corrupted
  2582. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  2583.       bundled with Novell DOS 7
  2584. --------N-7A----BX001F-----------------------
  2585. INT 7A U - Novell NetWare - IPXODI v2.12 - GET ???
  2586.     BX = 001Fh
  2587. Return: AX = ???
  2588.     BX:CX -> ??? entry point (see below)
  2589.     DX = ???
  2590.     ES:SI -> ???
  2591. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  2592.       bundled with Novell DOS 7
  2593. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  2594.  
  2595. Call entry point with:
  2596.     ES:SI -> ??? data (offset 24h is far pointer to ??? data)
  2597. --------N-7A----BX0020-----------------------
  2598. INT 7A U - Novell NetWare - IPXODI v2.12 - ???
  2599.     BX = 0020h
  2600.     ES:SI -> ??? data
  2601. Return: ???
  2602.     BX,BP corrupted
  2603. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  2604.  
  2605. Format of data:
  2606. Offset    Size    Description
  2607.  00h  8 BYTEs    ???
  2608.  08h    BYTE    (return) ???
  2609.  09h    BYTE    (return) ???
  2610.  0Ah    WORD    ???
  2611.  0Ch 16 BYTEs    ???
  2612.  1Ch  3 WORDs    ???
  2613.  22h    WORD    number of records at offset 28h
  2614.  24h    DWORD    -> ???
  2615.  28h 6N BYTEs    ??? records
  2616. --------N-7A----BX0021-----------------------
  2617. INT 7A U - Novell NetWare - IPXODI v2.12 - ???
  2618.     BX = 0021h
  2619.     ES:SI -> ??? data (see BX=0020h)
  2620. Return: ???
  2621.     BX,BP corrupted
  2622. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  2623. --------N-7A----BX0022-----------------------
  2624. INT 7A U - Novell NetWare - IPXODI v2.12 - ???
  2625.     BX = 0022h
  2626.     ES:SI -> ??? data (see BX=0020h)
  2627.     ???
  2628. Return: ???
  2629.     BX,BP corrupted
  2630. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  2631. --------N-7A----BX0023-----------------------
  2632. INT 7A U - Novell NetWare - IPXODI v2.12 - ???
  2633.     BX = 0023h
  2634.     AL = ???
  2635.     DX = ???
  2636.     ???
  2637. Return: ???
  2638.     BX corrupted
  2639. --------A-7A0001-----------------------------
  2640. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  2641.     AX = 0001h
  2642.     BX = configuration
  2643.     CX = interface level (0001h)
  2644. Return: AX = status
  2645.         0000h initialization failed
  2646.         0001h pre-v4.0 driver initialized successfully
  2647.         0003h post-v3.1 driver initialized successfully (driver truncates
  2648.               excessivly long packets)
  2649.     BX = width of graphics area in pixels, or 0000h if using packet
  2650.               communication
  2651.     DX:CX -> packet-mode entry point
  2652. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  2653. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  2654.  
  2655. Call packet-mode entry point with:
  2656. STACK:    DWORD    pointer to request packet
  2657.     WORD    length of packet
  2658.  
  2659. Format of request packet:
  2660. Offset    Size    Description
  2661.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  2662. --------A-7A0200BX0000-----------------------
  2663. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  2664.     AX = 0200h
  2665.     BX = 0000h
  2666.     CX = interface level (0001h)
  2667. Return: BX = 0000h (driver uses packet communication)
  2668.     DX:CX -> packet-mode entry point (see AX=0001h"AutoCAD")
  2669. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  2670. --------I-7A04-------------------------------
  2671. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  2672.     AH = 04h
  2673.     ???
  2674. Return: ???
  2675. SeeAlso: AH=06h
  2676. --------I-7A06-------------------------------
  2677. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  2678.     AH = 06h
  2679.     ???
  2680. Return: ???
  2681. SeeAlso: AH=04h
  2682. ----------7A07D0-----------------------------
  2683. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  2684.     AX = 07D0h
  2685. Return: AX = ??? (0003h)
  2686.     BX = 0000h
  2687.     DX:CX -> ADI entry point (see AX=0001h)
  2688. SeeAlso: AX=0001h
  2689. --------I-7A09--BX8020-----------------------
  2690. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  2691.     AH = 09h
  2692.     BX = 8020h (synchronous request)
  2693.     CX = 0000h
  2694.     DX = ID of session manager (SESSMGR)
  2695.     AL = service
  2696.         01h get session ID
  2697.         02h get session info
  2698.         04h dettach from session
  2699.         05h attach to session
  2700.         06h get list of windows available
  2701.         07h get environment of window
  2702.         08h get 'PIF' (program information file) info
  2703.         0Ah get base window ID
  2704.         0Bh get cursor info
  2705.     ES:DI -> control block
  2706. Return: ???
  2707. --------I-7A09--BX8020-----------------------
  2708. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  2709.     AH = 09h
  2710.     BX = 8020h (synchronous request)
  2711.     CX = 0000h
  2712.     DX = ID of keyboard manager
  2713.     AL = service
  2714.         01h connect to keyboard
  2715.         02h disconnect from keyboard
  2716.         03h read from keyboard
  2717.         04h send keystroke to session
  2718.         05h disable input
  2719.         06h enable input
  2720.         07h update status code
  2721.     ES:DI -> control block
  2722. Return: ???
  2723. --------I-7A09--BX8020-----------------------
  2724. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  2725.     AH = 09h
  2726.     BX = 8020h (synchronous request)
  2727.     CX = 00FFh
  2728.     DX = ID of window service controller (WSCTRL)
  2729.     AL = service
  2730.         01h connect to WS control
  2731.         02h disconnect from WS control
  2732.         03h add a window
  2733.         04h change window's position on screen
  2734.         05h change window's size
  2735.         06h change window's color
  2736.         07h change window's position in the presentation space
  2737.         08h hide/unhide toggle
  2738.         09h enlarge/reduce toggle
  2739.         0Ah change screen background color
  2740.         0Bh get window's position on screen
  2741.         0Ch get window's size
  2742.         0Dh get window's color
  2743.         0Eh get window's position in the presentation space
  2744.         0Fh determine whether hidden
  2745.         10h determine whether enlarged
  2746.         11h get background color
  2747.         12h get window names
  2748.         13h delete all windows from profile
  2749.         14h pick active window
  2750.         15h redraw screen
  2751.         16h redraw window
  2752.         17h delete a window from profile
  2753.         18h get active window
  2754.         19h get active screen
  2755.         1Ah get window data
  2756.         1Bh change window data
  2757.         1Ch select active screen
  2758.     ES:DI -> control block
  2759. Return: ???
  2760. --------I-7A09--BX8020-----------------------
  2761. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  2762.     AH = 09h
  2763.     BX = 8020h
  2764.     CX = 00FFh
  2765.     DX = ID of PCPSM
  2766.     AL = service
  2767.         01h define presentation space
  2768.         02h delete presentation space
  2769.         03h display presentation space
  2770.         04h position cursor in presentation space
  2771.         05h change default presentation space
  2772.     ES:DI -> control block
  2773. Return: ???
  2774. --------I-7A09--BX8020-----------------------
  2775. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  2776.     AH = 09h
  2777.     BX = 8020h
  2778.     CX = 00FFh
  2779.     DX = ID of 3270EML
  2780.     AL = service
  2781.         01h connect
  2782.         02h disconnect
  2783.     ES:DI -> control block
  2784. Return: ???
  2785. --------I-7A09--BX8020-----------------------
  2786. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  2787.     AH = 09h
  2788.     BX = 8020h
  2789.     CX = 00FFh
  2790.     DX = ID of OIAM
  2791.     AL = service
  2792.         01h read Operator Information Area
  2793.         02h read OIA subset
  2794.     ES:DI -> control block
  2795. Return: ???
  2796. Note: the OIA is the 25th line on the Host session
  2797. --------I-7A09--BX8020-----------------------
  2798. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  2799.     AH = 09h
  2800.     BX = 8020h
  2801.     CX = 00FFh
  2802.     DX = ID of XLATE
  2803.     AL = service
  2804.         01h translate from host characters to ASCII and vice versa
  2805.         (determined by control block byte 11)
  2806.     ES:DI -> control block
  2807. Return: ???
  2808. --------I-7A09--BX8020-----------------------
  2809. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  2810.     AH = 09h
  2811.     BX = 8020h
  2812.     CX = 00FFh
  2813.     DX = ID of copy service
  2814.     AL = service
  2815.         01h copy string from one presentation space to another
  2816.         02h copy block from one presentation space to another
  2817.         03h connect to PC session for copy
  2818.         04h disconnect PC session from copy
  2819.     ES:DI -> control block
  2820. Return: ???
  2821. --------I-7A09--BX8020-----------------------
  2822. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  2823.     AH = 09h
  2824.     BX = 8020h
  2825.     CX = 00FFh
  2826.     ES:DI -> control block
  2827.     DX = ID of INDJQRY
  2828.         get environment size
  2829.        = ID of INDJASY
  2830.         request DOS functions from workstation
  2831.        = ID of MEMORY
  2832.         AL = function
  2833.             01h allocate memory
  2834.             02h deallocate memory
  2835.             03h modify allocated size
  2836. Return: ???
  2837. --------I-7A09-------------------------------
  2838. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  2839.     AH = 09h
  2840.     BX = request type (4000h async, 8028h synchronous)
  2841.     CX = 0000h
  2842.     DX = ID of MFIC
  2843.     AL = service
  2844.        01h connect to host
  2845.        02h disconnect from host
  2846.        03h read DFT structured data from host
  2847.        04h write DFT structured data to host
  2848.        05h create a host buffer
  2849.     ES:DI -> control block
  2850. --------I-7A13-------------------------------
  2851. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  2852.     AH = 13h
  2853.     ???
  2854. Return: ???
  2855. ----------7A7A-------------------------------
  2856. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  2857.     AH = 7Ah
  2858.     ???
  2859. Return: AX = 0000h success
  2860.          000Eh undefined function code
  2861. Note:    this interface is normally on INT 7A but can be changed via device
  2862.       driver command line arguments
  2863. --------I-7A81-------------------------------
  2864. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  2865.     AH = 81h
  2866.     ES:DI -> 8-char blank-padded gate name
  2867.         "SESSMGR ", "KEYBOARD", "WSCTRL     ", "MFIC    ", "PCPSM     ",
  2868.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY     ",
  2869.         "INDJQRY ", or "INDJASY "
  2870. Return: DX = gate ID
  2871. --------I-7A83-------------------------------
  2872. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  2873.     AH = 83h
  2874.     ???
  2875. Return: ???
  2876. --------I-7AFDCB-----------------------------
  2877. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  2878.     AX = FDCBh
  2879. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  2880.  
  2881. Format of signature block:
  2882. Offset    Size    Description
  2883.  04h    WORD    PCS/3270 signature (5741h)
  2884.  06h    WORD    version (0501h = PCS/3270 v1.0)
  2885. --------I-7AFE01-----------------------------
  2886. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  2887.     AX = FE01h
  2888.     ???
  2889. Return: ???
  2890. SeeAlso: AX=FE02h
  2891. --------I-7AFE02-----------------------------
  2892. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  2893.     AX = FE02h
  2894.     ???
  2895. Return: ???
  2896. SeeAlso: AX=FE01h
  2897. --------I-7AFF01-----------------------------
  2898. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  2899.     AX = FF01h
  2900.     ES:DI -> API function handler routine
  2901. Return: CX = 1200h
  2902. SeeAlso: AX=FF02h,AX=FF03h
  2903. --------I-7AFF02-----------------------------
  2904. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  2905.     AX = FF02h
  2906. Return: CX = 1200h
  2907. SeeAlso: AX=FF01h
  2908. --------I-7AFF03-----------------------------
  2909. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  2910.     AX = FF03h
  2911.     ES:DI -> send/receive function handler routine
  2912. Return: CX = 1200h
  2913. SeeAlso: AX=FF01h
  2914. --------I-7AFF04-----------------------------
  2915. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  2916.     AX = FF04h
  2917.     ES:DI -> ???
  2918. Return: CX = 1200h
  2919. --------f-7B---------------------------------
  2920. INT 7B - Btrieve API (single user)
  2921.     DS:DX -> 38-byte parameter record (see below)
  2922. Return: return code field set
  2923. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  2924.       check
  2925. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  2926.  
  2927. Format of Btrieve parameter record:
  2928. Offset    Size    Description
  2929.  00h    DWORD    pointer to data buffer
  2930.  04h    WORD    data buffer length
  2931.  06h    DWORD    pointer to 90-byte record containing positioning info
  2932.         (should be same for all calls for same file)
  2933.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  2934.         (should be same for all calls for same file)
  2935.  0Eh    WORD    function code (see below)
  2936.  10h    DWORD    pointer to file name/key buffer
  2937.  14h    BYTE    key length
  2938.  15h    BYTE    key number
  2939.  16h    DWORD    pointer to status code (see below)
  2940.  1Ah    WORD    interface code (version specific)
  2941.         6176h version 5.10
  2942.  
  2943. Values for function code:
  2944.  00h    open
  2945.  01h    close
  2946.  02h    insert
  2947.  03h    update
  2948.  04h    delete
  2949.  05h    get_equal
  2950.  06h    get_next
  2951.  07h    get_prev
  2952.  08h    get_greater
  2953.  09h    get_gr_eql
  2954.  0Ah    get_less
  2955.  0Bh    get_less_eq
  2956.  0Ch    get_first
  2957.  0Dh    get_last
  2958.  0Eh    create
  2959.  0Fh    stat
  2960.  10h    extend
  2961.  11h    set_dir: set directory information
  2962.  12h    get_dir: get directory information
  2963.  13h    begin_trans
  2964.  14h    end_trans
  2965.  15h    abort_trans
  2966.  16h    get_pos: get record position number
  2967.  17h    get_direct: get data by sending record position
  2968.  18h    step_next
  2969.  19h    stop
  2970.  1Ah    version
  2971.  1Bh    unlock
  2972.  1Ch    reset
  2973.  1Dh    set owner
  2974.  1Eh    clear owner
  2975.  1Fh    create supplemental index
  2976.  20h    drop supplemental index
  2977.  21h    step first
  2978.  22h    step last
  2979.  23h    step previous
  2980.  24h    get next extended: get multiple records using a filter
  2981.  25h    get previous extended: get multiple records using a filter
  2982.  26h    step next extended: get multiple records using a filter
  2983.  27h    step previous extended: get multiple records using a filter
  2984.  28h    insert extended: insert one or more records
  2985.  31h    ???
  2986.  add 50 (32h) to any "get" operation to just return the key data
  2987.  add 100 (64h) for a single-record wait lock (automatically released on next
  2988.         get)
  2989.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  2990.         or 55h if record already locked)
  2991.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  2992.         called)
  2993.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  2994.         54h or 55h if record already locked)
  2995.  
  2996. Values for status code:
  2997.  00h    successful
  2998.  01h    invalid operation
  2999.  02h    I/O error
  3000.  03h    file not open
  3001.  04h    key value not found
  3002.  05h    duplicate key value
  3003.  06h    invalid key number
  3004.  07h    different key number
  3005.  08h    invalid positioning
  3006.  09h    end of file
  3007.  0Ah    modifiable key value error
  3008.  0Bh    invalid file name
  3009.  0Ch    file not found
  3010.  0Dh    extended file error
  3011.  0Eh    pre-image open error
  3012.  0Fh    pre-image I/O error
  3013.  10h    expansion error
  3014.  11h    close error
  3015.  12h    disk full
  3016.  13h    unrecoverable error
  3017.  14h    record manager inactive
  3018.  15h    key buffer too short
  3019.  16h    data buffer length overrun
  3020.  17h    position block length
  3021.  18h    page size error
  3022.  19h    create I/O error
  3023.  1Ah    number of keys
  3024.  1Bh    invalid key position
  3025.  1Ch    invalid record length
  3026.  1Dh    invalid key length
  3027.  1Eh    not a Btrieve file
  3028.  1Fh    file already extended
  3029.  20h    extended I/O error
  3030.  22h    invalid extension name
  3031.  23h    directory error
  3032.  24h    transaction error
  3033.  25h    transaction is active
  3034.  26h    transaction control file I/O error
  3035.  27h    end/abort transaction error
  3036.  28h    transaction max files
  3037.  29h    operation not allowed
  3038.  2Ah    incomplete accelerated access
  3039.  2Bh    invalid record address
  3040.  2Ch    null key path
  3041.  2Dh    inconsistent key flags
  3042.  2Eh    access to file denied
  3043.  2Fh    maximum open files
  3044.  30h    invalid alternate sequence definition
  3045.  31h    key type error
  3046.  32h    owner already set
  3047.  33h    invalid owner
  3048.  34h    error writing cache
  3049.  35h    invalid interface
  3050.  36h    variable page error
  3051.  37h    autoincrement error
  3052.  38h    incomplete index
  3053.  39h    expanded memory error
  3054.  3Ah    compression buffer too short
  3055.  3Bh    file already exists
  3056.  3Ch    reject count reached
  3057.  3Dh    work space too small
  3058.  3Eh    incorrect descriptor
  3059.  3Fh    invalid extended insert
  3060.  40h    filter limit reached
  3061.  41h    incorrect field offset
  3062.  4Ah    automatic transaction abort
  3063.  4Dh    Btrieve engine busy or resource locked by another user
  3064.  4Eh    deadlock detected
  3065.  50h    conflict
  3066.  51h    lock error
  3067.  52h    lost position
  3068.  53h    read outside transaction
  3069.  54h    record in use
  3070.  55h    file in use
  3071.  56h    file table full
  3072.  57h    handle table full
  3073.  58h    incompatible open mode
  3074.  5Ah    redirected device table full
  3075.  5Bh    server error
  3076.  5Ch    transaction table full
  3077.  5Dh    incompatible lock type
  3078.  5Eh    permission error
  3079.  5Fh    session no longer valid
  3080.  60h    communications environment error
  3081.  61h    data message too small
  3082.  62h    internal transaction error
  3083. --------I-7B---------------------------------
  3084. INT 7B - Eicon Access API (3270/5250 gateways)
  3085. SeeAlso: INT 5C"NetBIOS"
  3086. --------E-7B---------------------------------
  3087. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  3088. Note:    this vector is overwritten when GO32 starts but is not restored by
  3089.       early versions of the extender
  3090. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  3091. --------A-7B---------------------------------
  3092. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  3093.     AX = data length (0000h-7FFFh)
  3094.     CX:BX -> data to be plotted
  3095.     DX = vertical position of line on page
  3096. Return: nothing
  3097. Notes:    This interrupt is called by AutoCAD to perform its output
  3098.     A data length of 0000h indicates that a blank line is to be output
  3099. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  3100. ----------7B---------------------------------
  3101. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  3102.     DS:DX -> parameter block (see below)
  3103. Return: parameter block updated
  3104.  
  3105. Values for function number:
  3106.  00h    log in
  3107.  01h    log out
  3108.  02h    "tNewFcn"
  3109.  03h    "tFreeFcn"
  3110.  04h    "tMoveFldFcn"
  3111.  05h    "tFieldFcn"
  3112.  06h    "tDescribeFcn"
  3113.  07h    "tFetchFcn"
  3114.  08h    "tComputeFcn"
  3115.  09h    "tOrderFcn"
  3116.  0Ah    "tRestrictFcn"
  3117.  0Bh    "tJoinFcn"
  3118.  0Ch    "tInsertFcn"
  3119.  0Dh    "tUpdateFcn"
  3120.  0Eh    "tUpdallFcn"
  3121.  0Fh    "tRemoveFcn"
  3122.  10h    "tRemallFcn"
  3123.  11h    "tResetFcn"
  3124.  12h    "tTransFcn"
  3125.  13h    "tStatFcn"
  3126.  14h    "tDDCreFcn"
  3127.  15h    "tStoreFcn"
  3128.  16h    "tRecallFcn"
  3129.  17h    "tStopFcn"
  3130.  18h    "tDDFileFcn"
  3131.  19h    "tDDFieldFcn"
  3132.  1Ah    "tDDIndexFcn"
  3133.  1Bh    "tDDModFcn"
  3134.  1Ch    "tDDViewFcn"
  3135.  1Dh    "tDDDrpFcn"
  3136.  1Eh    "tDDPathFcn"
  3137.  1Fh    "tDDAttrFcn"
  3138.  20h    "tDDFcn"
  3139.  21h    "tSecurFcn"
  3140.  22h    "tUserFcn"
  3141.  23h    "tAccessFcn"
  3142.  24h    "tPswdFcn"
  3143.  25h    "tCharFcn"
  3144.  26h    "tVersionFcn"
  3145.  27h    "tCnvFcn"
  3146.  28h    "tValFcn"
  3147.  29h    "tMaskFcn"
  3148.  
  3149. Format of parameter block:
  3150. Offset    Size    Description
  3151.  00h  4 BYTEs    signature "XQLP"
  3152.  04h    WORD    function number (see above)
  3153.  06h    WORD    handle
  3154.  08h    WORD    status
  3155.  0Ah    WORD    session ID
  3156.  0Ch    var    data record (varies by function)
  3157. ---function 00h---
  3158.  0Ch    DWORD    -> user name
  3159.  10h    DWORD    -> password
  3160.  14h    DWORD    -> dictionary
  3161.  18h    DWORD    -> filepath
  3162.  1Ch    DWORD    -> machine name
  3163.  20h    WORD    process ID
  3164. ---function 01h---
  3165.  no additional fields???
  3166. ---function 02h---
  3167.  0Ch    DWORD    -> filename
  3168.  10h    DWORD    -> owner name
  3169.  14h    WORD    open mode
  3170. ---function 03h---
  3171.  no additional fields???
  3172. ---function 04h---
  3173.  0Ch    WORD    "frompos"
  3174.  0Eh    WORD    "topos"
  3175. ---function 05h---
  3176.  0Ch    WORD    subfunction
  3177.  0Eh    WORD    position
  3178.  10h    WORD    count
  3179.  12h    DWORD    -> field list
  3180. ---function 06h---
  3181.  0Ch    WORD    subfunction
  3182.  0Eh    WORD    length of description
  3183.  10h    WORD    position
  3184.  12h    WORD    count
  3185.  14h    DWORD    pointer to description list
  3186. ---function 07h---
  3187.  0Ch    WORD    data length
  3188.  0Eh    WORD    "op"
  3189.  10h    DWORD    "select"
  3190.  14h    DWORD    "reject"
  3191.  18h    DWORD    pointer to data buffer
  3192. ---function 08h---
  3193.  0Ch    DWORD    -> field name
  3194.  10h    WORD    field type
  3195.  12h    WORD    field size
  3196.  14h    WORD    "flddec"
  3197.  16h    WORD    "explen"
  3198.  18h    DWORD    pointer to "expbuf"
  3199. ---function 09h---
  3200.  0Ch    WORD    count
  3201.  0Eh    DWORD    -> field list
  3202. ---function 0Ah---
  3203.  0Ch    WORD    "newexp"
  3204.  0Eh    WORD    "explen"
  3205.  10h    DWORD    -> "expbuf"
  3206. ---function 0Bh---
  3207.  0Ch    DWORD    -> filename
  3208.  10h    DWORD    -> owner name
  3209.  14h    WORD    type of join
  3210.  16h    WORD    "pCount"
  3211.  18h    DWORD    -> "pNames"
  3212.  1Ch    WORD    "sCount"
  3213.  1Eh    DWORD    -> "sNames"
  3214. ---functions 0Ch, 0Dh, 0Fh---
  3215.  0Ch    WORD    file count
  3216.  0Eh    DWORD    -> file list
  3217.  12h    DWORD    count
  3218.  16h    DWORD    -> buffer
  3219. ---function 0Eh---
  3220.  0Ch    WORD    file count
  3221.  0Eh    DWORD    -> file list
  3222.  12h    WORD    "op"
  3223.  14h    DWORD    "select"
  3224.  18h    DWORD    "reject"
  3225.  1Ch    WORD    count
  3226.  1Eh    DWORD    -> "res"
  3227.  22h    DWORD    -> "comp"
  3228. ---function 10h---
  3229.  0Ch    WORD    file count
  3230.  0Eh    DWORD    -> file list
  3231.  12h    WORD    "op"
  3232.  14h    DWORD    "select"
  3233.  18h    DWORD    "reject"
  3234. ---function 11h---
  3235.  0Ch    DWORD    machine name
  3236. ---function 12h---
  3237.  0Ch    WORD    option
  3238. ---function 13h---
  3239.  0Ch    WORD    subfunction
  3240.  0Eh    WORD    length of buffer
  3241.  10h    DWORD    -> buffer
  3242. ---function 14h---
  3243.  0Ch    WORD    subfunction
  3244.  0Eh    DWORD    -> filename
  3245.  12h    WORD    "create"
  3246.  14h    DWORD    -> pathname
  3247.  18h    DWORD    -> owner name
  3248.  1Ch    WORD    owner access restrictions
  3249.  1Eh    WORD    number of fields
  3250.  20h    DWORD    -> field list
  3251.  24h    WORD    number of keys
  3252.  28h    DWORD    -> key list
  3253.  2Ch    WORD    "buflen"
  3254.  2Eh    DWORD    -> create parameters
  3255. ---function 15h---
  3256.  0Ch    DWORD    -> "StoreName"
  3257.  10h    WORD    length of buffer
  3258.  12h    DWORD    -> buffer
  3259. ---function 16h---
  3260.  0Ch    DWORD    -> "RecallName"
  3261.  10h    WORD    owner number
  3262.  12h    DWORD    -> owner list
  3263.  16h    WORD    open mode
  3264.  18h    WORD    length of buffer
  3265.  1Ah    DWORD    -> buffer
  3266. ---function 17h---
  3267.  no additional fields???
  3268. ---function 18h---
  3269.  0Ch    WORD    "rtype"
  3270.  0Eh    WORD    count
  3271.  10h    DWORD    -> "filebuf"
  3272.  14h    WORD    length of following buffer
  3273.  16h    DWORD    -> output buffer
  3274. ---functions 19h, 1Ah---
  3275.  0Ch    WORD    "rtype"
  3276.  0Eh    WORD    count
  3277.  10h    DWORD    -> field buffer
  3278.  14h    WORD    length of following buffer
  3279.  16h    DWORD    -> output buffer
  3280. ---function 1Bh---
  3281.  0Ch    WORD    subfunction
  3282.  0Eh    DWORD    -> filename
  3283.  12h    WORD    "create"
  3284.  14h    DWORD    -> pathname
  3285.  18h    DWORD    -> owner name
  3286.  1Ch    WORD    owner access restrictions
  3287.  1Eh    WORD    field count
  3288.  20h    DWORD    -> field list
  3289.  24h    WORD    number of keys
  3290.  26h    DWORD    -> list of keys
  3291. ---function 1Ch---
  3292.  0Ch    WORD    count
  3293.  0Eh    DWORD    -> view name
  3294.  12h    WORD    length of following buffer
  3295.  14h    DWORD    -> output buffer
  3296. ---function 1Dh---
  3297.  0Ch    DWORD    -> filename
  3298.  10h    WORD    file type
  3299.  12h    WORD    "deletepath"
  3300. ---function 1Eh---
  3301.  0Ch    WORD    "dirtype"
  3302.  0Eh    DWORD    -> pathname
  3303. ---function 1Fh---
  3304.  0Ch    WORD    function
  3305.  0Eh    DWORD    -> field name
  3306.  12h    WORD    attribute
  3307.  14h    WORD    size of buffer
  3308.  16h    DWORD    -> buffer for attributes
  3309. ---function 20h---
  3310.  0Ch    DWORD    -> directory path
  3311.  10h    WORD    function
  3312. ---function 21h---
  3313.  0Ch    DWORD    -> master password
  3314.  10h    WORD    "securityflag"
  3315. ---function 22h---
  3316.  0Ch    DWORD    -> master password
  3317.  10h    WORD    function (add/modify/remove)
  3318.  12h    DWORD    -> user name
  3319.  16h    DWORD    -> password
  3320.  1Ah    WORD    global rights
  3321.  1Ch    WORD    count
  3322.  1Eh    WORD    length of following buffer
  3323.  20h    DWORD    -> "userbuf"
  3324. ---function 23h---
  3325.  0Ch    DWORD    -> master password
  3326.  10h    DWORD    -> user name
  3327.  14h    WORD    function (allow/deny/getrights)
  3328.  16h    WORD    rights
  3329.  18h    DWORD    -> filename
  3330.  1Ch    WORD    number of field names in following buffer
  3331.  1Eh    DWORD    -> field names
  3332.  22h    WORD    maximum buffer length
  3333.  24h    DWORD    -> output buffer
  3334. ---function 24h---
  3335.  0Ch    DWORD    -> user name
  3336.  10h    DWORD    -> password
  3337. ---function 25h---
  3338.  0Ch    WORD    "charFcn"
  3339.  0Eh    WORD    "charType"
  3340.  10h    WORD    "charValue"
  3341. ---function 26h---
  3342.  0Ch    DWORD    -> buffer
  3343. ---function 27h---
  3344.  0Ch    WORD    option
  3345.  0Eh    WORD    type
  3346.  10h    WORD    size
  3347.  12h    WORD    "dec"
  3348.  14h    WORD    "dsize"
  3349.  16h    DWORD    -> value
  3350.  1Ah    DWORD    -> "retval"
  3351.  1Eh    DWORD    -> mask
  3352.  22h    WORD    "justify"
  3353. ---function 28h---
  3354.  0Ch    DWORD    -> field name
  3355.  10h    WORD    length of buffer
  3356.  12h    DWORD    -> buffer for data
  3357. ---function 29h---
  3358.  0Ch    WORD    option
  3359.  0Eh    WORD    type
  3360.  10h    WORD    size
  3361.  12h    WORD    "dec"
  3362.  14h    WORD    length of mask
  3363.  16h    DWORD    -> mask
  3364. --------A-7B8001-----------------------------
  3365. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  3366.     AX = 8001h
  3367.     BX = file level
  3368.         0000h binary file
  3369.         0001h CAD/camera image file
  3370.         0002h installed ADI driver
  3371.     CX = horizontal size in pixels
  3372.     DX = vertical size in pixels
  3373. Return: AX = status (0000h initialization failed, 0001h init successful)
  3374.     BX = allowed output format
  3375.         0000h monochrome
  3376.         0001h color (4 bits per pixel)
  3377. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  3378. --------A-7B8002-----------------------------
  3379. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  3380.     AX = 8002h
  3381. SeeAlso: AX=8001h,AX=8003h
  3382. --------A-7B8003-----------------------------
  3383. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  3384.     AX = 8003h
  3385. SeeAlso: AX=8001h,AX=8002h
  3386. --------r-7C---------------------------------
  3387. INT 7C U - IBM REXX88PC command language
  3388.     ???
  3389. --------E-7C---------------------------------
  3390. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  3391. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3392.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3393. Note:    this vector is overwritten when GO32 starts but is not restored by
  3394.       early versions of the extender
  3395. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  3396. --------P-7C---------------------------------
  3397. INT 7C - PRINDIR v8.02+ - API
  3398.     AH = function
  3399.        00h set output to Invisible mode
  3400.        01h set output to LPT1
  3401.        02h set output to LPT2
  3402.        03h set output to LPT3
  3403.        04h set output to COM1
  3404.        05h set output to COM2
  3405.        06h set output to COM3
  3406.        07h set output to COM4
  3407.        08h set output to screen
  3408.        09h set output to file
  3409.        0Ah change file path
  3410.            ES:DI -> new path
  3411.            CX = length of path (max 41, but not range-checked)
  3412.        0Bh change file name
  3413.            ES:DI -> new filename
  3414.            CX = length of new name (max 41, but not range-checked)
  3415.        0Ch set redirected device
  3416.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  3417.        0Dh force buffer dump
  3418.        0Eh set display color
  3419.            AL = new color attribute (see INT 10/AH=08h)
  3420.        0Fh set popup hotkey
  3421.            AL = hotkey scancode
  3422.        10h toggle byte display
  3423.            AL = new state (00h off, 01h on)
  3424.        11h change buffer flush delay
  3425.            AL = timer ticks before flush
  3426. Return: AX = status
  3427.         0000h successful
  3428.         0001h invalid function or nothing in buffer to be dumped
  3429.         (documented as "nonzero = error")
  3430. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  3431.       Creations
  3432. Notes:    the installation check consists of testing for the ASCIZ signature
  3433.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  3434.       the start of the interrupt handler
  3435.     prior versions of PRINDIR used INT 7A instead of INT 7C
  3436. SeeAlso: INT 7A"PRINDIR"
  3437. Index:    hotkeys;PRINDIR
  3438. --------A-7C---------------------------------
  3439. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  3440. Note:    this is the default interrupt vector for rendering hardcopy drivers
  3441.       instead of INT 7A used by AutoCAD drivers
  3442. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  3443. --------N-7C---------------------------------
  3444. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  3445. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3446.       which provides an API on top of it Data Link Interface, allowing the
  3447.       use of any of several network transport layers; this product is
  3448.       called SK-PASSPORT in the USA.
  3449. Notes:    The installation check consists of testing for the ASCII signature
  3450.       string "UPPS_DLI" immediately preceding the interrupt handler.
  3451.     To find the service interrupt being used by the driver, an application
  3452.       should scan through the interrupt table until it finds an interrupt
  3453.       vector with the "UPPS_DLI" string.
  3454.     There may be more than one DLI loaded, each having its own service
  3455.       interrupt.
  3456. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  3457. Index:    installation check;SK-UPPS
  3458. --------N-7C0000-----------------------------
  3459. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  3460.     AX = 0000h
  3461. Return: AH = major DLI version
  3462.     AL = minor DLI version
  3463.     DX = OEM signature (see below)
  3464.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  3465. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  3466.  
  3467. OEM signatures (defined by SK):
  3468.  0001h experimental
  3469.  3343h 3COM
  3470.  4942h IBM
  3471.  4943h Intellicom
  3472.  494Eh Intel
  3473.  4B4Fh Kodiak
  3474.  4D41h Madge
  3475.  4E45h Novell
  3476.  4F43h Olicom
  3477.  5349h Siemens
  3478.  534Bh Schneider & Koch (SysKonnect)
  3479.  5744h Western Digital
  3480. --------N-7C0001-----------------------------
  3481. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  3482.     AX = 0001h
  3483. Return: AX = completion code (see below)
  3484. Note:    the DLI will refuse to unload if there are any protocols
  3485.       (see AX=0007h) or clients (see AX=0010h) active.
  3486. Index:    uninstall;SK-UPPS Data Link Interface
  3487.  
  3488. Completion codes:
  3489.  0000h SUCCESS
  3490.  0005h INVALID_MULTICAST
  3491.  0006h BUFFER_TOO_SMALL
  3492.  0007h NO_BUFFERS_LEFT
  3493.  0008h NO_RESOURCES_LEFT
  3494.  000Bh ILLEGAL_PROTOCOL_ID
  3495.  000Ch PROTOCOL_IN_USE
  3496.  000Dh NO_MULTICAST_ADDRESS
  3497.  000Fh PROTOCOLS_ACTIVE
  3498.  0010h CLIENTS_ACTIVE
  3499.  001Bh INVALID_MODE
  3500.  001Ch MODE_NOT_SUPPORTED
  3501.  FFFFh UNKNOWN_SERVICE
  3502. --------N-7C0002-----------------------------
  3503. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  3504.     AX = 0002h
  3505.     ES:DI -> Status Information Block (SIB) (see AX=000Eh, description of
  3506.           Driver Information Block)
  3507. Return: AX = completion code (see AX=0001h)
  3508. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  3509. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  3510. --------N-7C0003-----------------------------
  3511. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  3512.     AX = 0003h
  3513.     ES:DI -> new node address (6 bytes)
  3514. Return: AX = completion code (see AX=0001h)
  3515. Note:    the DLI will refuse to change the address if any protocols
  3516.       (see AX=0007h) are active
  3517. SeeAlso: AX=0001h,AX=000Eh
  3518. --------N-7C0004-----------------------------
  3519. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  3520.     AX = 0004h
  3521.     DX = protocol ID (see AX=0007h)
  3522. Return: AX = completion code (see also AX=0001h)
  3523.         0000h successful
  3524.         ES:BX -> Memory Buffer (Mbuf) (see below)
  3525. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  3526.       protocol and later call the protocol's Event Upcall with
  3527.       EV_BUFFER_AVAILABLE (see AX=0007h) as soon as an Mbuf becomes
  3528.       available.  There will only be one "buffer available" Upcall, even
  3529.       if this function has been called several times before.
  3530. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  3531.  
  3532. Format of Memory Buffer (Mbuf):
  3533. Offset    Size    Description
  3534.  00h    DWORD    -> NEXT Mbuf (linked list)
  3535.  04h    WORD    OFFSET of actual data within DATA area
  3536.  06h  2 BYTEs    reserved (currently unused)
  3537.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  3538.  0Ah  2 BYTEs    reserved (currently unused)
  3539.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  3540.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  3541.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  3542.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  3543. --------N-7C0005-----------------------------
  3544. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  3545.     AX = 0005h
  3546.     ES:BX -> Mbuf (see AX=0004h)
  3547. Return: nothing
  3548. SeeAlso: AX=0004h
  3549. --------N-7C0006-----------------------------
  3550. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  3551.     AX = 0006h
  3552.     ES:BX -> Mbuf (see AX=0004h)
  3553. Return: nothing
  3554. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  3555.       at OFFSET. A complete and valid frame must be stored there. The DLI
  3556.       will only copy the current node address (see AX=0003h) to the
  3557.       source node field of the frame's MAC header.
  3558.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  3559.       of the value found in the LENGTH field.
  3560.     This function returns immediately; the DLI will call the protocol's
  3561.       Transmit Upcall (see AX=0007h) when the frame has been sent.
  3562.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  3563.       Transmit Upcall.
  3564. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  3565.  
  3566. Transmit Upcall called with:
  3567.     ES:BX -> Mbuf (NEXT field destroyed)
  3568.     interrupts disabled
  3569. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  3570.       header have been bit-swapped to physical address format.
  3571. --------N-7C0007-----------------------------
  3572. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  3573.     AX = 0007h
  3574.     ES:BX -> Protocol Control Block (see below)
  3575. Return: AX = completion code (see AX=0001h)
  3576. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3577.       which provides an API on top of its Data Link Interface, allowing the
  3578.       use of any of several network transport layers
  3579. SeeAlso: AX=0008h,AX=000Bh
  3580.  
  3581. Format of Protocol Control Block (PCB):
  3582. Offset    Size    Description
  3583.  00h    WORD    protocol type (high-low)
  3584.  02h    WORD    protocol mode (see below)
  3585.  04h    DWORD    -> Receive Upcall routine
  3586.  08h    DWORD    -> Transmit Upcall routine
  3587.  0Ch    DWORD    -> Event Upcall routine
  3588.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  3589.  14h    WORD    protocol ID will be returned here (always non-zero)
  3590.  
  3591. Bitfields for protocol mode:
  3592. Bit(s)    Description
  3593.  0    promiscuous mode; protocol receives all frames regardless of their
  3594.       destination (PROTOCOL TYPE must be FFFFh)
  3595.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  3596.       DLI's Interrupt Service Routine (see event codes below)
  3597.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  3598.       this station (PROTOCOL TYPE must be FFFFh)
  3599.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  3600.  4-5    DLI 2.5+ frame type:
  3601.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  3602.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  3603.         (offset 0) of PROCOTOL TYPE field; LSB must be zero
  3604.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  3605.         field (high-low)
  3606.     11 reserved (currently unused)
  3607.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  3608.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  3609.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  3610.       be shared with other clients
  3611.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  3612.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  3613.  10-15    reserved (currently unused; must be zero)
  3614. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  3615.       mode is set, the protocol receives all frames that did not match
  3616.       any registered frame type (demultiplexor mode).
  3617.     Protocols using "promiscuous", "hook" or "chain" mode should always
  3618.       return from the Receive Upcall with the received Mbuf in ES:BX and
  3619.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  3620.       BUFFER function (see AX=000Fh).
  3621.     Some DLIs do not support all or even any of the "promiscuous",
  3622.       "receive non-LLC" and "receive all multicasts" mode bits.
  3623.  
  3624. Receive Upcall called with:
  3625.  ES:BX -> Mbuf
  3626.  AX = receive status (see below; also stored in Mbuf's RECEIVE STATUS field)
  3627.  interrupts disabled
  3628.  
  3629. Bitfields for receive status (reserved bits currently unused and always zero):
  3630. Bit(s)    Description
  3631.  0-2    reserved
  3632.  3    frame check sequence (FCS) error
  3633.  4    overflow (frame too long)
  3634.  5    framing error
  3635.  6    reserved
  3636.  7    non-LLC frame (see 8 of PCB's protocol mode field)
  3637.  8-15    reserved
  3638. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  3639.       matching the specified frame type is received. A received frame is
  3640.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  3641.       is LENGTH bytes.
  3642.     The receive status passed to the Receive Upcall in register AL is
  3643.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  3644.       protocol mode field) or "promiscuous" mode together with "receive
  3645.       error frames" (0 & 3).
  3646.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  3647.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  3648.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  3649.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  3650.  
  3651. Event Upcall called with:
  3652.  AX = event code (see below)
  3653. Note:    All Event Upcalls may be ignored by the protocol.
  3654.  
  3655. Event codes found in register AX on Event Upcall:
  3656.  00h EV_BUFFER_AVAILABLE  client may now call REQUEST BUFFER (AX=0004h)
  3657.  01h EV_ISR_START    start of Interrupt Service Routine
  3658.  02h EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  3659.  03h EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  3660.  04h EV_NETWORK_STATUS    DLI 2.8+ network status (DX=status; see below)
  3661.  05h EV_IO_CONTROL    DLI 2.8+ I/O control (DX=subfunction; see AX=0016h)
  3662.  
  3663. Bitfields for EV_NETWORK_STATUS in register DX:
  3664. Bit(s)    Description
  3665.     Token-Ring        FDDI
  3666.  15    SIGNAL_LOSS        SIGNAL_LOSS
  3667.  14    HARD_ERROR        HARD_ERROR
  3668.  13    SOFT_ERROR        SOFT_ERROR
  3669.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  3670.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  3671.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  3672.  9    reserved        reserved
  3673.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  3674.  7    COUNTER_OVERFLOW    reserved
  3675.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  3676.  5    RING_RECOVERY        NO_RING_OP_STATUS
  3677.  4    reserved        VERSION_MISMATCH
  3678.  3    reserved        STUCK_BYPASS
  3679.  2    reserved        FDDI_EVENT
  3680.  1    reserved        RING_OP_CHANGE
  3681.  0    reserved        reserved
  3682. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  3683. --------N-7C0008-----------------------------
  3684. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  3685.     AX = 0008h
  3686.     BX = protocol ID (see AX=0007h)
  3687. Return: AX = completion code (see AX=0001h)
  3688. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  3689.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  3690.     all multicast addresses registered for this protocol will be disabled.
  3691.     after this function returns, the protocol's Upcall routines will no
  3692.       longer be called.
  3693. SeeAlso: AX=0007h,AX=000Bh
  3694. --------N-7C0009-----------------------------
  3695. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  3696.     AX = 0009h
  3697.     BX = protocol ID (see AX=0007h)
  3698.     ES:DI -> multicast address (6 bytes)
  3699. Return: AX = completion code (see AX=0001h)
  3700. Notes:    The broadcast address is always enabled.
  3701.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  3702.       (AX=0007h) to receive all multicast frames.
  3703. SeeAlso: AX=000Ah,AX=0014h
  3704. --------N-7C000A-----------------------------
  3705. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  3706.     AX = 000Ah
  3707.     BX = protocol ID (see AX=0007h)
  3708.     ES:DI -> multicast address (6 bytes)
  3709. Return: AX = completion code (see AX=0001h)
  3710. SeeAlso: AX=0009h,AX=0014h
  3711. --------N-7C000B-----------------------------
  3712. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  3713.     AX = 000Bh
  3714.     ES:DI -> protocol ID buffer
  3715.     CX = number of 2-byte protocol IDs that may be stored in buffer
  3716. Return: AX = completion code (see AX=0001h)
  3717.     CX = number of active protocols (regardless of value returned in AX)
  3718.     protocol ID buffer filled with active protocol IDs
  3719. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3720.       which provides an API on top of its Data Link Interface, allowing the
  3721.       use of any of several network transport layers
  3722. Note:    If the buffer supplied is too small, CX still contains the total number
  3723.       of active protocols and the buffer has been filled until full.
  3724. SeeAlso: AX=000Ch,AX=0014h
  3725. --------N-7C000C-----------------------------
  3726. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  3727.     AX = 000Ch
  3728.     BX = protocol ID (see AX=000Bh)
  3729.     ES:DI -> Protocol Status Block (see below)
  3730. Return: AX = completion code (see AX=0001h)
  3731. SeeAlso: AX=000Bh,AX=0014h
  3732.  
  3733. Format of Protocol Status Block (PSB):
  3734. Offset    Size    Description
  3735.  00h    DWORD    -> ASCIZ protocol name
  3736.  04h    WORD    protocol mode (see AX=0007h)
  3737.  06h    WORD    protocol type (see AX=0007h)
  3738.  08h    WORD    number of registered multicasts (see AX=0009h, AX=0014h)
  3739. --------N-7C000D-----------------------------
  3740. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  3741.     AX = 000Dh
  3742.     BX = flag: 0=don't clear statistics, 1=clear statistics
  3743.     ES:DI -> Statistics Data Block (see below)
  3744. Return: AX = completion code (see AX=0001h)
  3745. SeeAlso: AX=0002h,AX=0015h
  3746.  
  3747. Format of Statistics Data Block (SDB):
  3748. Offset    Size    Description
  3749.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  3750.  04h    DWORD    bytes received
  3751.  08h    DWORD    bytes transmitted
  3752.  0Ch    DWORD    frames received
  3753.  10h    DWORD    frames transmitted
  3754.  14h    DWORD    multicast bytes received
  3755.  18h    DWORD    multicast frames received
  3756.  1Ch    DWORD    unrecognized frames
  3757.  20h    WORD    missed frames
  3758.  22h    WORD    frame check sequence (FCS) errors
  3759.  24h    WORD    framing errors
  3760.  26h    WORD    babbling errors
  3761.  28h    WORD    late collision errors
  3762.  2Ah    WORD    loss of carrier errors
  3763.  2Ch    WORD    16 retries failed errors
  3764.  2Eh    WORD    overflow errors
  3765. Note:    fields 26h through 2Ch are always zero, except in some very old
  3766.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  3767.       more detailed information.
  3768. --------N-7C000E-----------------------------
  3769. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  3770.     AX = 000Eh
  3771.     ES:DI -> Driver Information Block (see below)
  3772.     BX = offset of 1st field within DIB to be returned
  3773.     CX = number of bytes to be returned
  3774. Return: AX = completion code (see AX=0001h)
  3775.     CX = number of bytes copied (regardless of value returned in AX)
  3776. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3777.       which provides an API on top of its Data Link Interface, allowing the
  3778.       use of any of several network transport layers
  3779. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  3780.  
  3781. Format of Driver Information Block (DIB):
  3782. Offset    Size    Description
  3783.  00h  6 BYTEs    physical node address (from adapter's ROM)
  3784.  06h  6 BYTEs    current node address (see AX=0003h)
  3785.  0Ch    BYTE    adapter id (defined by OEM)
  3786.  0Dh    BYTE    IRQ line (FFh if none)
  3787.  0Eh    DWORD    -> shared memory (zero if none)
  3788.  12h    DWORD    size of shared memory (zero if none)
  3789.  16h    WORD    base I/O port (zero if none)
  3790.  18h    BYTE    DMA line (FFh if none)
  3791.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  3792.  1Ah    WORD    size of an Mbuf's DATA area (see AX=0004h)
  3793.  1Ch  2 BYTEs    reserved (currently unused)
  3794.  1Eh    WORD    total number of Mbufs the DLI has
  3795.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  3796.          BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  3797.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  3798.  22h    DWORD    -> ASCIZ adapter name
  3799.  26h    WORD    number of I/O ports used (zero if none)
  3800.  28h    DWORD    line speed in bits/sec.
  3801. --------N-7C000F-----------------------------
  3802. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  3803.     AX = 000Fh
  3804.     ES:BX -> Mbuf
  3805. Return: nothing
  3806. Notes:    A protocol may call this function instead of returning the Mbuf
  3807.       directly from the Receive Upcall if it is running in "promiscuous",
  3808.       "hook" or "chain" mode.
  3809. SeeAlso: AX=0007h
  3810. --------N-7C0010-----------------------------
  3811. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  3812.     AX = 0010h
  3813. Return: nothing
  3814. Notes:    An application having no active protocols may call this function to
  3815.       prevent the DLI from unloading.
  3816. SeeAlso: AX=0001h,AX=0011h
  3817. --------N-7C0011-----------------------------
  3818. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  3819.     AX = 0011h
  3820. Return: nothing
  3821. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3822.       which provides an API on top of its Data Link Interface, allowing the
  3823.       use of any of several network transport layers
  3824. SeeAlso: AX=0010h
  3825. --------N-7C0012-----------------------------
  3826. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  3827.     AX = 0012h
  3828.     DX = protocol ID (see AX=0007h)
  3829. Return: AX = completion code (see AX=0001h)
  3830.     if AX=0000h: ES:BX -> Mbuf (see AX=0004h)
  3831. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  3832.       REQUEST BUFFER (AX=0004h) should be used instead.
  3833. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  3834. --------N-7C0013-----------------------------
  3835. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  3836.     AX = 0013h
  3837.     ES:BX -> Mbuf (see AX=0004h)
  3838. Return: nothing
  3839. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  3840.     The Mbuf may no more be used by the protocol in any way (i.e. the
  3841.       Mbuf's IN USE field may not be polled).
  3842. SeeAlso: AX=0004h,AX=0013h
  3843. --------N-7C0014-----------------------------
  3844. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  3845.     AX = 0014h
  3846.     BX = protocol ID (see AX=000Bh)
  3847.     ES:DI -> multicast address buffer
  3848.     CX = number of 6-byte multicast addresses that may be stored in buffer
  3849. Return: AX = completion code (see AX=0001h)
  3850.     CX = number of registered multicast addresses for this protocol
  3851.       (regardless of value returned in AX)
  3852.     multicast address buffer filled with multicast addresses registered for
  3853.       this protocol
  3854. Note:    If the buffer supplied is too small, CX still contains the total number
  3855.       of registered multicast addresses for this protocol and the buffer has
  3856.       been filled until full.
  3857. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  3858. --------N-7C0015-----------------------------
  3859. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  3860.     AX = 0015h
  3861.     ES:DI -> media-specific statistics buffer (see below)
  3862.     BX = offset of 1st field within MSS to be returned
  3863.     CX = number of bytes to be returned
  3864. Return: AX = completion code (see AX=0001h)
  3865.     CX = number of bytes copied (regardless of value returned in AX)
  3866. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  3867. SeeAlso: AX=0000h,AX=000Dh
  3868.  
  3869. Format of media-specific statistics for Ethernet:
  3870. Offset    Size    Description
  3871.  00h    DWORD    alignment errors
  3872.  04h    DWORD    frame check sequence (FCS) errors
  3873.  08h    DWORD    single collision frames
  3874.  0Ch    DWORD    multiple collision frames
  3875.  10h    DWORD    signal quality error (SQE) test errors
  3876.  14h    DWORD    deferred transmissions
  3877.  18h    DWORD    late collisions
  3878.  1Ch    DWORD    excessive collisions
  3879.  20h    DWORD    internal MAC transmit errors
  3880.  24h    DWORD    carrier sense errors
  3881.  28h    DWORD    excessive deferrals
  3882.  2Ch    DWORD    frame too longs
  3883.  30h    DWORD    in range length errors
  3884.  34h    DWORD    out of range length fields
  3885.  38h    DWORD    internal MAC receive errors
  3886.  
  3887. Format of media-specific statistics for FDDI:
  3888. Offset    Size    Description
  3889.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  3890.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  3891.          5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  3892.  08h    DWORD    SMT frames sent
  3893.  0Ch    DWORD    SMT frames received
  3894.  10h    DWORD    SMT ring up count
  3895.  14h  6 BYTEs    MAC upstream neighbour
  3896.  1Ah  6 BYTEs    MAC downstream neighbour
  3897.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  3898.  24h    DWORD    MAC error counter ( " )
  3899.  28h    DWORD    MAC lost counter ( " )
  3900.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  3901.          is reported as the absolute value of the exponent)
  3902.  2Dh    BYTE    port 2 link error estimate ( " )
  3903.  2Eh  2 BYTEs    reserved (currently unused)
  3904.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  3905.          2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  3906.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  3907.  
  3908. Format of media-specific statistics for Token-Ring:
  3909. Offset    Size    Description
  3910.  00h  6 BYTEs    upstream neighbour
  3911.  06h    WORD    local ring number
  3912.  08h    DWORD    ring up count
  3913.  0Ch    DWORD    signal loss errors
  3914.  10h    DWORD    lobe wire faults
  3915.  14h    DWORD    ring recovery count
  3916.  18h    DWORD    line errors
  3917.  1Ch    DWORD    burst errors
  3918.  20h    DWORD    ARI/FCI errors
  3919.  24h    DWORD    lost frame errors
  3920.  28h    DWORD    receive congestion errors
  3921.  2Ch    DWORD    frame copied errors
  3922.  30h    DWORD    token errors
  3923.  34h    DWORD    DMA bus errors
  3924.  38h    DWORD    DMA parity errors
  3925.  3Ch    DWORD    receive overflow errors
  3926. --------N-7C0016-----------------------------
  3927. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  3928.     AX = 0016h
  3929.     DX = subfunction; bits 14-15 specify direction of I/O:
  3930.         00 no data at all (ES:BX undefined)
  3931.         01 driver -> application (GET)
  3932.         10 application -> driver (SET)
  3933.         11 both directions (GET/SET)
  3934.     ES:BX -> I/O buffer (optional)
  3935.     CX = size of buffer (if ES:BX valid)
  3936. Return: AX = completion code; defined by OEM
  3937. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3938.       which provides an API on top of its Data Link Interface, allowing the
  3939.       use of any of several network transport layers
  3940. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  3941.     subfunction codes are defined by OEMs
  3942. SeeAlso: AX=0001h
  3943. --------N-7C0017-----------------------------
  3944. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  3945.     AX = 0017h
  3946. Return: AX = completion code (see AX=0001h)
  3947. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  3948.     must be called with interrupts disabled; when the client re-enables
  3949.       interrupts, an interrupt will be generated and reported to the client
  3950.       through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  3951. SeeAlso: AX=0007h
  3952. --------t-7D---------------------------------
  3953. INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  3954. Note:    this interface has been moved to INT 2D; there are no known
  3955.       implementations on INT 7D
  3956. SeeAlso: INT 2D,INT 2F
  3957. --------S-7D---------------------------------
  3958. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  3959. SeeAlso: INT 7E"YTERM"
  3960. --------E-7D---------------------------------
  3961. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  3962. Note:    this vector is overwritten when GO32 starts but is not restored by
  3963.       early versions of the extender
  3964. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  3965. --------U-7D---------------------------------
  3966. INT 7D - HyperPAD v2.2 - API ACCESS
  3967. Note:    this vector is hooked but immediately passed on (without checking
  3968.       whether the previous handler was 0000h:0000h).  The sole purpose of
  3969.       this vector is to provide the address of the data area described
  3970.       below.
  3971.  
  3972. Format of HyperPAD data area:
  3973. Offset    Size    Description
  3974.  -16h    DWORD    pointer to ??? FAR function
  3975.  -12h    DWORD    pointer to callback setting function
  3976.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  3977.  -0Eh 6 BYTEs    signature "BRC001"
  3978.  -08h    DWORD    pointer to previous INT 7D handler
  3979.  -04h    DWORD    pointer to ??? data
  3980.  00h        HyperPAD INT 7D handler
  3981. ----------7D---------------------------------
  3982. INT 7D - IBM DOS 6.1 E.EXE - ???
  3983. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  3984.       and if it is used, attempts to load E55VGA.EX instead of the 
  3985.       default E.EX overlay.     However, E55VGA.EX is not included in
  3986.       IBM DOS 6.1.
  3987. ----------7D00-------------------------------
  3988. INT 7D - SCSILink - RESET SCSI BUS
  3989.     AH = 00h
  3990. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  3991.       cross assemblers and similar products to communicate with Cross
  3992.       Products hardware debuggers
  3993. Desc:    reset all devices on the SCSI bus
  3994. Note:    the installation check is the signature "SCSILINK" immediately prior
  3995.       to the interrupt handler
  3996. Index:    installation check;SCSILink
  3997. ----------7D01-------------------------------
  3998. INT 7D - SCSILink - CONNECT TO TARGET
  3999.     AH = 01h
  4000.     AL = target ID
  4001. Return: CF clear if successful
  4002.     CF set on error
  4003.         AL = initiator error
  4004.         AH = target error
  4005. Desc:    arbitrate the use of the bus and select the specified target device
  4006. ----------7D02-------------------------------
  4007. INT 7D - SCSILink - SEND COMMAND
  4008.     AH = 02h
  4009.     ES:BX -> parameter block (see below)
  4010. Return: CF clear if successful
  4011.     CF set on error
  4012.         AL = initiator error
  4013.         AH = target error
  4014. Desc:    send the specified command block to the target device and perform any
  4015.       related I/O
  4016.  
  4017. Format of parameter block:
  4018. Offset    Size    Description
  4019.  00h    DWORD    size of command block
  4020.  04h    DWORD    address of command block (see below)
  4021.  08h    DWORD    size of buffer
  4022.  0Ch    DWORD    address of buffer
  4023.  
  4024. Format of command block:
  4025. Offset    Size    Description
  4026.  00h        info not yet available
  4027. ----------7D03-------------------------------
  4028. INT 7D - SCSILink - SET TIMEOUT
  4029.     AH = 03h
  4030.     AL = timeout selector (see below)
  4031.     BX = new value in 55ms ticks
  4032. Desc:    change an internal timeout value to allow communication with very
  4033.       slow targets
  4034.  
  4035. Values for timeout selector:
  4036.  00h    time to wait for bus (default 18)
  4037.  01h    time to wait for new phase (default 5)
  4038.  02h    maximum time to send/receive block (default 18)
  4039.  03h    time to wait for reselect (default 180)
  4040. ----------7D04-------------------------------
  4041. INT 7D - SCSILink - GET ERROR STRING
  4042.     AH = 04h
  4043.     AL = error number
  4044. Return: ES:BX -> ASCIZ error string for error number
  4045. ----------7D05-------------------------------
  4046. INT 7D - SCSILink - GET ADDRESS
  4047.     AH = 05h
  4048. Return: AL = DMA channel
  4049.     AH = initiator ID
  4050.     BX = card address
  4051. Desc:    determine the current hardware configuration
  4052. ----------7D06-------------------------------
  4053. INT 7D - SCSILink - PUT DATA
  4054.     AH = 06h
  4055.     CX = number of bytes to store (0001h-0100h)
  4056.     ES:BX -> data to be saved
  4057. Return: CF clear if successful
  4058.     CF set on error
  4059.         AL = error code (01h = too much data)
  4060. Note:    the specified data is stored in SCSILink's PSP
  4061. SeeAlso: AH=07h
  4062. ----------7D07-------------------------------
  4063. INT 7D - SCSILink - GET DATA
  4064.     AH = 07h
  4065.     CX = number of bytes to retrieve (0001h-0100h)
  4066.     ES:BX -> buffer for data
  4067. Return: CF clear if successful
  4068.     CF set on error
  4069.         AL = error code (01h = too much data)
  4070. Note:    retrieve data previously stored with AH=06h
  4071. SeeAlso: AH=06h
  4072. ----------7D08-------------------------------
  4073. INT 7D - SCSILink - TERMINATE SESSION
  4074.     AH = 08h
  4075. Desc:    indicate to any other programs that intercept INT 7D that the program
  4076.       has finished with the link
  4077. Note:    the program should call this function even if a SCSI error caused its
  4078.       termination
  4079. ----------7D09-------------------------------
  4080. INT 7D - SCSILink - POLL REQUEST
  4081.     AH = 09h
  4082.     AL = target ID
  4083. Return: AL = status
  4084.         FEh resident driver experienced SCSI error
  4085.         FFh resident driver handleded event
  4086. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  4087.       not specifically handled by the calling program
  4088. Notes:    this service exists so that resident disk servers, etc. can continue
  4089.       running even while debuggers and profilers are active
  4090.     the resident driver assumes that a connection has been established and
  4091.       attempts to leave the target connected
  4092. --------*-7E---------------------------------
  4093. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  4094. --------S-7E---------------------------------
  4095. INT 7E U - YTERM 1.4 - ???
  4096. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  4097. --------E-7E---------------------------------
  4098. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  4099. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4100.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4101. Note:    this vector is overwritten when GO32 starts but is not restored by
  4102.       early versions of the extender
  4103. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  4104. --------m-7E5857BL57-------------------------
  4105. INT 7E - XLOAD - INSTALLATION CHECK
  4106.     AX = 5857h
  4107.     BL = 57h
  4108. Return: AX = 0000h if installed
  4109. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  4110. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  4111. --------m-7E5857BL5A-------------------------
  4112. INT 7E - XLOAD - GET ???
  4113.     AX = 5857h
  4114.     BL = 5Ah
  4115. Return: AX = 0000h
  4116.     CX = ???
  4117.     DS:SI -> ???
  4118. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  4119. --------m-7E5857BL5B-------------------------
  4120. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  4121.     AX = 5857h
  4122.     BL = 5Bh
  4123. Return: AX = 0000h
  4124.     CX = segment of XLOAD TSR
  4125.     DX = size of memory block in which XLOAD TSR is located
  4126. SeeAlso: AX=5857h/BL=57h/AX=5857h/BL=5Ah
  4127. --------V-7F---------------------------------
  4128. INT 7F - IBM XGA - ???
  4129. --------V-7F---------------------------------
  4130. INT 7F - Halo88 - API
  4131.     BX = function
  4132.         64h arc
  4133.         65h bar
  4134.         66h box
  4135.         67h circle
  4136.         68h clr
  4137.         69h default hatch style
  4138.         6Ah default line style
  4139.         6Bh delhcur
  4140.         6Ch delln / deltcur
  4141.         6Dh ellipse
  4142.         6Eh fill
  4143.         6Fh flood
  4144.         70h flood2
  4145.         71h init graphics
  4146.         72h init hcur
  4147.         73h init marker
  4148.         74h init tcur
  4149.         75h inqarc
  4150.         76h inqbknd
  4151.         77h inqclr
  4152.         78h inqerr
  4153.         79h inqgcur
  4154.         7Ah inqhcur
  4155.         7Bh inqmarker
  4156.         7Dh inqtcur
  4157.         7Eh inqtext
  4158.         7Fh lnabs
  4159.         80h lnrel
  4160.         81h markerabs
  4161.         82h markerrel
  4162.         83h moveabs
  4163.         84h movehcurabs
  4164.         85h movehcurrel
  4165.         86h moverel
  4166.         87h movetcurabs
  4167.         88h movetcurrel
  4168.         89h movefrom
  4169.         8Ah moveto
  4170.         8Bh pie
  4171.         8Ch polylnabs
  4172.         8Dh polylnrel
  4173.         8Eh ptabs
  4174.         8Fh ptrel
  4175.         91h setasp
  4176.         92h set color
  4177.         93h set font
  4178.         94h set hatch style
  4179.         95h set line style
  4180.         97h settext
  4181.         98h set text color
  4182.         99h btext
  4183.         9Ah setseg
  4184.         9Bh display
  4185.         9Ch setscreen
  4186.         9Eh close graphics
  4187.         9Fh ftinit
  4188.         A0h ftlocate
  4189.         A1h ftext
  4190.         A5h set viewport
  4191.         A6h set window
  4192.         A7h set world
  4193.         AAh ftcolor
  4194.         ACh initlp
  4195.         ADh inqasp
  4196.         AEh inqdev
  4197.         AFh inqdisplay
  4198.         B0h inqft
  4199.         B1h inqftcolor
  4200.         B2h inqinterlace
  4201.         B3h inqlpa
  4202.         B4h inqlpg
  4203.         B5h inqmode
  4204.         B6h inqscreen
  4205.         B7h inqversion
  4206.         B8h roam
  4207.         B9h scroll
  4208.         BAh setieee
  4209.         BBh set interlace
  4210.         BCh shift
  4211.         BDh start graphics
  4212.         BEh vpan
  4213.         CBh gwrite
  4214.         CCh gread
  4215.         CDh setxor
  4216.         CEh rbox
  4217.         CFh rcir
  4218.         D0h rlnabs
  4219.         D1h rlnrel
  4220.         D2h delbox
  4221.         D3h delcir
  4222.         D5h setseg2
  4223.         DCh worldoff
  4224.         DDh mapwtod
  4225.         DEh mapdtow
  4226.         DFh mapwton
  4227.         E0h mapntow
  4228.         E1h mapdton
  4229.         E2h mapntod
  4230.         E3h inqworld
  4231.         E4h inqviewport
  4232.         E5h set line width
  4233.         E6h lnjoint
  4234.         E7h set locator
  4235.         E8h read locator
  4236.         E9h setdev
  4237.         EBh setstext
  4238.         ECh setstclr
  4239.         EDh setstang
  4240.         EEh stext
  4241.         EFh inqstext
  4242.         F0h setdegree
  4243.         F1h inqstsize
  4244.         F2h polyfabs
  4245.         F3h polyfrel
  4246.         F4h inqdrange
  4247.         F5h inqstang
  4248.         F6h orglocator
  4249.         F7h inqlocator
  4250.         F8h inqarea
  4251.         F9h setipal
  4252.         FAh setborder
  4253.         FBh inqcrange
  4254.         FEh setclip
  4255.         FFh fcir
  4256.            100h setcrange
  4257.            101h setdrange
  4258.            102h setlattr
  4259.            103h polycabs
  4260.            104h polycrel
  4261.            108h memcom
  4262.            109h memexp
  4263.            10Ah memmov
  4264.            10Eh movefx
  4265.            10Fh movetx
  4266.            110h inqrgb
  4267.            111h save image
  4268.            112h restore image
  4269.            113h setapal
  4270.            114h setxpal
  4271.            118h inqtsize
  4272.            12Eh gprint
  4273.            130h setprn
  4274.            131h setpattr
  4275.            133h setbattr
  4276.            135h pexpand
  4277.            136h ptnorm
  4278.            137h pfnorm
  4279.            13Bh inqprn
  4280.            13Ch lopen
  4281.            13Dh lclose
  4282.            13Eh lappend
  4283.            13Fh lrecord
  4284.            140h lswitch
  4285.            142h inqfun
  4286.            15Dh lsetup
  4287.            15Eh lrest
  4288.            15Fh lsave
  4289.     additional parameters on stack
  4290. Return: ???
  4291. Program: Halo88 is a suite of graphics routines
  4292. Note:    according to Stuart Kemp, the code appears to make no provisions for
  4293.        chaining
  4294. --------N-7F---------------------------------
  4295. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4296.     AL = request ID
  4297.         01h "Request"/"RequestDirect"
  4298.         ES:BX -> pRq
  4299.         DX ignored
  4300.         04h "Wait"
  4301.         ES:BX -> ppMsgRet
  4302.         DX = exchange
  4303.         05h "AllocExch"
  4304.         ES:BX -> pExchRet
  4305.         06h "DeAllocExch"
  4306.         DX = exchange
  4307.         07h "Check"
  4308.         ES:BX -> ppMsgRet
  4309.         DX = exchange
  4310.     CX = 4354h ('CT')
  4311. Return: AX = status
  4312.         0000h successful
  4313. --------S-7F---------------------------------
  4314. INT 7F - Telebit ACS SERIAL I/O
  4315.     ES:SI-> parameter block
  4316. Return: CF set on error
  4317.     CF clear on success
  4318. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  4319.       handler; this serves as the installation check
  4320. Index:    installation check;Telebit ACS Serial I/O
  4321.  
  4322. Format of Telebit ACS parameter block:
  4323. Offset    Size    Description
  4324.  00h    BYTE    command (see below)
  4325.  01h    BYTE    gateway number
  4326.  02h    BYTE    reserved
  4327.  03h    BYTE    port
  4328.  04h 17 BYTEs    auxiliary buffer
  4329.  15h    BYTE    session
  4330.  16h    WORD    count of bytes passed to API
  4331.  18h    DWORD    buffer pointer passed to/from API
  4332.  1Ch    WORD    count of bytes passed from API
  4333.  1Eh    BYTE    return code (see below)
  4334.  
  4335. Values for command:
  4336.  3Ch    status
  4337.  3Dh    connect
  4338.  3Eh    disconnect
  4339.  3Fh    read
  4340.  40h    data/command write
  4341.  41h    clear receive buffer
  4342.  42h    get configuration
  4343.  43h    get receiver status
  4344.  44h    raw write
  4345.  45h    search servers
  4346.  46h    set transmit buffer size
  4347.  
  4348. Values for return code:
  4349.  00h    success
  4350.  01h    invalid session
  4351.  05h    servername invalid
  4352.  06h    NetWare fileserver bindery is locked
  4353.  07h    communication server not active
  4354.  08h    general failure in NetWare fileserver
  4355.  09h    not logged into a fileserver
  4356.  10h    connection table full
  4357.  11h    no response from communication server
  4358.  12h    connection attempt terminated abnormally
  4359.  13h    connection refused - no sessions available
  4360.  14h    gateway number/port already in use
  4361.  15h    invalid connection response
  4362.  16h    port invalid
  4363.  17h    incorrect version in server response
  4364.  18h    gateway number/port combination not configured
  4365.  19h    initialization has not been completed
  4366.  20h    no more sockets are available
  4367.  21h    no active poolname
  4368.  23h    FATAL internal interface error
  4369.  24h    registration of host workstation failed - name is already in use
  4370.  25h    registration of host workstation failed - workstation name table full
  4371.  26h    registration of host workstation failed - only one session may be
  4372.       registered for dial-in
  4373.  FFh    Telebit ACS API is busy - retry later
  4374. --------N-7F---------------------------------
  4375. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  4376. Notes:    the installation check consists of checking for the signature "Lynn"
  4377.       in the four bytes preceding the interrupt handler; if present, the
  4378.       current program is running as a DOS task on a non-dedicated NetWare
  4379.       2.x file server.
  4380.     Before placing the server into "console" mode, it is recommended that
  4381.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  4382. SeeAlso: INT 21/AX=DE00h
  4383. Index:    installation check;non-dedicated NetWare server
  4384. --------S-7F---------------------------------
  4385. INT 7F U - YTERM - ???
  4386. SeeAlso: INT 7E"YTERM"
  4387. --------E-7F---------------------------------
  4388. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  4389. Note:    this vector is overwritten when GO32 starts but is not restored by
  4390.       early versions of the DOS extender
  4391. SeeAlso: INT 0F,INT 7E"GO32"
  4392. ----------7F---------------------------------
  4393. INT 7F - Canon IXHND2 Scanner Interface
  4394. --------N-7F---------------------------------
  4395. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  4396. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  4397.       MW386 multitasking system is present (i.e. signature "NXNX")
  4398.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  4399.       load time.  To determine the actual vector used, open the device
  4400.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  4401.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  4402.       be the actual interrupt number being used; the other interrupts may
  4403.       be found with INT 7F/AH=09h/CL=03h
  4404. --------N-7F---------------------------------
  4405. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  4406. Note:    a program may determine that it is running on an ANSK Slave by checking
  4407.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  4408.       address is RAM, and should not be written.  However, the above check
  4409.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  4410.       device driver
  4411. --------N-7F00-------------------------------
  4412. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  4413.     AH = 00h
  4414.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4415. Return: AL = status (see below)
  4416.     AH = semaphore owner if status=02h
  4417. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  4418.  
  4419. Values for status:
  4420.  00h    successful
  4421.  01h    invalid function
  4422.  02h    semaphore already locked
  4423.  03h    unable to lock/unlock semaphore
  4424.  04h    semaphore space exhausted
  4425.  05h    host/target PC did not respond (NTNX)
  4426. --------N-7F00-------------------------------
  4427. INT 7F - G8BPQ - proposed addition - GET NODE/SWITCH VERSION AND DESCRIPTION
  4428.     AH = 00h
  4429.     ES:SI -> buffer for "USERS" text string
  4430. Return: AH = major version
  4431.     AL = minor version
  4432.     CX = length of returned string
  4433. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4434.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4435. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  4436. --------N-7F01-------------------------------
  4437. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  4438.     AH = 01h
  4439.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4440. Return: AL = status (see AH=00h)
  4441.     AH = semaphore owner if status=02h
  4442. SeeAlso: AH=00h,AH=02h,AH=41h
  4443. --------V-7F01-------------------------------
  4444. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  4445.     AH = 01h
  4446. Return: BX = 1234h if installed
  4447.         DX:AX -> array of FAR entry points
  4448.         CH = driver major version
  4449.         CL = driver minor version
  4450. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  4451. SeeAlso: AX=1234h,AX=4321h
  4452. --------N-7F01-------------------------------
  4453. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  4454.     AH = 01h
  4455.     AL = stream number (01h-40h)
  4456.     CL = new application flags
  4457.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  4458.     DL = new application mask
  4459. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4460.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4461. Note:    INT 7Fh is the default, which may be changed in the configuration file
  4462.       for v4.03+
  4463. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  4464. --------I-7F0104BX0000-----------------------
  4465. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  4466.     AX = 0104h (HLLAPI gate ID)
  4467.     BX = 0000h
  4468.     DS:SI -> parameter control block (see below)
  4469. Return: parameter control block updated
  4470. Note:    the installation check for the Novell HLLAPI TSR is the signature
  4471.       string "CXI" (for the company Novell bought) immediately prior to
  4472.       the interrupt handler
  4473. SeeAlso: AX=0105h,AX=ABCDh
  4474.  
  4475. Format of parameter control block:
  4476. Offset    Size    Description
  4477.  00h  3 BYTEs    signature = 'PCB'
  4478.  03h    BYTE    function number (see below)
  4479.  04h    WORD    segment of control string
  4480.  06h    WORD    offset of control string
  4481.  08h    WORD    length of control string, unless explicit end-of-str char set
  4482.  0Ah    BYTE    unused (IBM)
  4483.         ControlString[0] (Rabbit)
  4484.  0Bh    WORD    return code (see below)
  4485.  0Dh    WORD    maximum length of control string (IBM)
  4486.         unused (Rabbit)
  4487.  
  4488. Values for HLLAPI function number:
  4489.  00h    OEM function (Query system for Attachmate implementation)
  4490.  01h    Connect presentation space
  4491.  02h    Disconnect presentation space
  4492.  03h    Send string of keystrokes as if typed from keyboard
  4493.  04h    Wait ~60s, returns status of presentation space
  4494.  05h    Copy current presentation space into a user-defined buffer
  4495.  06h    Search presentation space for first occurrence of a specified string
  4496.  07h    Query cursor location in current presentation space
  4497.  08h    Copy part or all of current presentation space into user buffer
  4498.  09h    Set session parameters; parameters vary by vendor
  4499.  0Ah    Get info on sessions currently connected
  4500.  0Bh    Lock current presentation space
  4501.  0Ch    Unlock previously locked presentation space
  4502.  0Dh    Return copy of operator info area (OIA) of current presentation space
  4503.  0Eh    get attribute byte for given position in the current presentation space
  4504.  0Fh    copy string of characters to the current presentation space
  4505.  10h    workstation control functions
  4506.  11h    storage manager functions, intended primarily for BASIC applications
  4507.     (not implemented by Rabbit)
  4508.  12h    set delay period in half-second intervals
  4509.  14h    get info on level of workstation support used
  4510.  15h    reset session parameters to default values
  4511.  16h    get detailed info on the current session
  4512.  17h    start host notification to application on presentation sp or OIA update
  4513.  18h    check host update when host notification enabled
  4514.  19h    stop host notification
  4515.  1Eh    search field within current presentation space for string
  4516.  1Fh    get first positionof a selected field in the current presentation space
  4517.  20h    get length of specified field
  4518.  21h    copy string into a specified field
  4519.  22h    copy specified field into a user-defined buffer
  4520.  23h    create alternate presentation space (IBM only), don't use with BASIC
  4521.  24h    switch to alternate presentation space (IBM only), not with BASIC
  4522.  25h    display cursor in specified area (IBM only), don't use with BASIC
  4523.  26h    display alternate presentation space (IBM only), don't use with BASIC
  4524.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  4525.  28h    set cursor
  4526.  29h    start Close Intercept
  4527.  2Ah    query Close Intercept
  4528.  2Bh    stop Close Intercept
  4529.  32h    start intercepting keystrokes to allow filtering
  4530.  33h    get keystrokes after turning on interception
  4531.  34h    notify operator when keystroke rejected by filter subroutine
  4532.  35h    stop intercepting keystrokes
  4533.  5Ah    send file
  4534.  5Bh    receive file
  4535.  5Ch    run a program (not implemented by Rabbit)
  4536.  5Dh    execute DOS command (not implemented by Rabbit)
  4537.  63h    change presentation space position to PC display row/col or vice versa
  4538.  65h    connect to Window Services
  4539.  66h    disconnect from Window Services
  4540.  67h    set/query window coordinates
  4541.  68h    set/query window status
  4542.  69h    change presentation space name
  4543.  78h    connect Structured Fields
  4544.  79h    disconnect Structured Fields
  4545.  7Ah    query size of communications buffer
  4546.  7Bh    allocate communications buffer
  4547.  7Ch    free communications buffer
  4548.  7Dh    get request completion state
  4549.  7Eh    read Structured Fields
  4550.  7Fh    write Structured Fields
  4551.  FFh    Get info on DCA implementation
  4552.  
  4553. Values for LLAPI function number:
  4554.  80h    initialize LLAPI (internal call)
  4555.  83h    set Session ID (one-character ID)
  4556.  84h    read Session ID (one-character ID)
  4557.  85h    lock 327x keyboard
  4558.  86h    unlock 327x keyboard
  4559.  87h    wait for Clear to Send
  4560.  88h    type ASCII character
  4561.  89h    type 327x key
  4562.  8Ah    read keyboard lock state
  4563.  8Fh    force screen update
  4564.  90h    view session
  4565.  91h    relinquish (suspend foreground until background becomes idle)
  4566.  92h    poke screen character
  4567.  93h    poke translated character
  4568.  94h    peek screen character
  4569.  95h    peek translated character
  4570.  96h    set cursor position
  4571.  97h    send scan code (Rabbit only)
  4572.  98h    synchronize (returns after keystroke queue empty)
  4573.  99h    type PC key (Rabbit only)
  4574.  
  4575. Session Parameters for function 09h:
  4576.  ASCII        ??? (Rabbit only)
  4577.  ATTRIB        return attributes in hex
  4578.  NOATTRIB    return attributes as blanks
  4579.  CONPHYS    make physical connection
  4580.  CONLOG        only make logical connection
  4581.  EAB        copy extended attribute bytes along with data
  4582.  NOEAB        copy data only
  4583.  ESC=n        set escape character to "n" (default '@')
  4584.  EOT=n        set end of string character (default 00h)
  4585.  FPAUSE        full-duration pause
  4586.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  4587.  FTWAIT        wait for file transfer to complete (Rabbit only)
  4588.  IPAUSE        interruptable pause
  4589.  RABESC        ??? (Rabbit only)
  4590.  NORABESC    ??? (Rabbit only)
  4591.  SCANCODE    ??? (Rabbit only)
  4592.  STRLEN        use explicit string lengths
  4593.  STREOT        use terminated strings
  4594.  SRCHALL    search entire presentation space
  4595.  SRCHFROM    search from specified offset
  4596.  SRCHFRWD    search forward from position 1
  4597.  SRCHBKWD    search backward from last position in presentation space
  4598.  TIMEOUT=n    ??? (Rabbit only)
  4599.  TWAIT        wait specified time for keyboard ready
  4600.  LWAIT        wait until keyboard ready
  4601.  NWAIT        no wait
  4602.  TRON        enable tracing
  4603.  TROFF        disable tracing
  4604.  AUTORESET    send reset before sending keys with function 03h
  4605.  NORESET    don't send reset
  4606.  QUIET        don't display messages sent with INT 21/AH=09h
  4607.  NOQUIET    allow messages to be displayed
  4608.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  4609.  XLATE        translate extended attribute bytes
  4610.  NOXLATE    don't translate
  4611.  NEWRET        use HLLAPI v3.0 return code conventions
  4612.  OLDRET        use HLLAPI v2.0 return code conventions
  4613.  
  4614. Values for Windows HLLAPI return code:
  4615.  00h    successful
  4616.  01h    Presentation Space not connected/requested size unavailable
  4617.  02h    invalid function or parameter error/invalid block ID
  4618.  03h    file transfer complete
  4619.  04h    file transfer complete (segmented)/Presentation Space busy
  4620.  05h    inhibited or keyboard locked
  4621.  06h    data truncated
  4622.  07h    invalid Presentation Space position
  4623.  08h    operation not available
  4624.  09h    system error
  4625.  0Ah    blocking error
  4626.  0Bh    resource not available
  4627.  0Ch    session stopped
  4628.  14h    undefined key combination
  4629.  15h    OIA updated
  4630.  16h    Presentation Space updated
  4631.  17h    both Presentation Space and OIA updated
  4632.  18h    no such field
  4633.  19h    no keystrokes available
  4634.  1Ah    Presentation Space or Operator Information Area changed
  4635.  1Bh    file transfer aborted
  4636.  1Ch    zero-length field
  4637.  1Eh    cursor type invalid
  4638.  1Fh    keystroke overflow
  4639.  20h    another application is already connected
  4640.  22h    message sent to host cancelled
  4641.  23h    transmission from host cancelled
  4642.  24h    lost contact with host
  4643.  25h    function successful
  4644.  26h    function incomplete
  4645.  27h    a DDM session is already connected
  4646.  28h    disconnected, but asynchronous requests still pending
  4647.  29h    buffer already in use
  4648.  2Ah    no matching request found
  4649. 12Dh    invalid function number
  4650. 12Eh    file not found
  4651. 131h    access denied
  4652. 134h    out of memory
  4653. 136h    environment invalid
  4654. 137h    format invalid
  4655. 270Eh (9998) invalid Presentation Space ID
  4656. 270Fh (9999) invalid row or column code
  4657. ---Windows HLLAPI extensions---
  4658. F000h    asynchronous call already in progress
  4659. F001h    invalid asynchronous task ID
  4660. F002h    blocking call cancelled
  4661. F003h    underlying subsystem not started
  4662. F004h    unsupported application version
  4663. --------V-7F0105-----------------------------
  4664. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  4665.     AX = 0105h
  4666. Return: CF set on error
  4667.     CF clear if successful
  4668.         CX:DX -> array of FAR pointers to entry points
  4669. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  4670.       and then performing a FAR call via the appropriate vector of the
  4671.       entry point array
  4672. SeeAlso: AX=0104h,AX=ABCDh
  4673.  
  4674. Function numbers: (do FAR call via entry_points+4*function)
  4675.  08h    HOPEN
  4676.  10h    HINT
  4677.  13h    HLDPAL
  4678.  15h    HBBW
  4679.  17h    HBBR
  4680.  18h    HBBCHN
  4681.  1Dh    HQMODE
  4682.  22h    HCLOSE
  4683.  30h    HINIT
  4684.  31h    HSYNC
  4685.  39h    HSPAL
  4686.  3Ah    HRPAL
  4687. --------N-7F02-------------------------------
  4688. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  4689.     AH = 02h
  4690.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4691. Return: AL = status (see AH=00h"NTNX")
  4692.     AH = semaphore owner if status=02h
  4693. SeeAlso: AH=00h,AH=01h,AH=42h
  4694. --------N-7F02-------------------------------
  4695. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  4696.     AH = 02h
  4697.     AL = stream number (01h-40h)
  4698.     CX = length of frame
  4699.     ES:SI -> frame to be sent
  4700. SeeAlso: AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  4701. --------f-7F0200-----------------------------
  4702. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  4703.     AX = 0200h
  4704. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  4705. --------N-7F03-------------------------------
  4706. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  4707.     AH = 03h
  4708. Return: AL = user number
  4709.     AH = machine number (MW386)
  4710. Note:    this function call is the recommended method for a CPU-bound process to
  4711.       prevent its priority from being lowered
  4712. SeeAlso: AH=04h,AH=05h,AH=A1h
  4713. --------N-7F03-------------------------------
  4714. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  4715.     AH = 03h
  4716.     AL = stream number (01h-40h)
  4717.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  4718.           bytes is usually sufficient)
  4719. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  4720.     CX = length of received frame
  4721. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  4722. --------N-7F04-------------------------------
  4723. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  4724.     AH = 04h
  4725. Return: AL = total number of users on currrent machine (MW386)
  4726.     AL = number of slaves on system (NTNX)
  4727. SeeAlso: AH=03h
  4728. --------N-7F04-------------------------------
  4729. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  4730.     AH = 04h
  4731.     AL = stream number (01h-40h)
  4732. Return: CX = state (0000h disconnected, 0001h connected)
  4733.     DX = delta state (0000h no change, 0001h changed since last check)
  4734. SeeAlso: AH=02h"G8BPQ",AH=05h"G8BPQ"
  4735. --------N-7F05-------------------------------
  4736. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  4737.     AH = 05h
  4738.     AL = function
  4739.         00h lock system (disable slave services)
  4740.         01h unlock system
  4741.         02h enable spooler
  4742.         03h disable spooler
  4743.         04h enable slave timer update
  4744.         05h disable slave timer update
  4745.         06h enable form feeds
  4746.         07h disable form feeds
  4747. SeeAlso: INT 17/AH=A4h
  4748. --------N-7F05-------------------------------
  4749. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  4750.     AH = 05h
  4751.     DX:DI -> buffer for user information record (see below)
  4752. Notes:    MW386 provides this function for backward compatibility only, and sets
  4753.       many of the fields to zero because they are meaningless under MW386
  4754.     this function has no effect when called by the host (user 0)
  4755. SeeAlso: AH=03h
  4756.  
  4757. Format of user information record:
  4758. Offset    Size    Description
  4759.  00h    WORD    segment of video RAM
  4760.  02h    WORD    segment of secondary copy of video RAM
  4761.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  4762.         flag nonzero if update needed
  4763.  06h    WORD    video NMI enable port
  4764.         (not used by MW386, set to 0000h)
  4765.  08h    WORD    video NMI disable port
  4766.         (not used by MW386, set to 0000h)
  4767.  0Ah    BYTE    processor type
  4768.         00h 8088
  4769.         01h V20
  4770.         02h 8086
  4771.         03h V30
  4772.         06h 80386
  4773.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  4774.         (not used by MW386, set to 0000h)
  4775.  0Dh    WORD    offset of terminal driver
  4776.         (not used by MW386, set to 0000h)
  4777.  0Fh    BYTE    port for console I/O
  4778.         (not used by MW386, set to 0000h)
  4779.  10h    WORD    offset of processor communication busy flag
  4780.         bit 7 set when slave communicating with host
  4781.  12h    WORD    pointer to FAR NX system call
  4782.         (not used by MW386, set to 0000h)
  4783.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  4784.  16h    WORD    offset of command/status word
  4785.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  4786.         nonzero if screen must be repainted
  4787.  1Ah    WORD    offset of screen repaint flag
  4788.  1Ch    WORD    pointer to NEAR NX system call
  4789.         (not used by MW386, set to 0000h)
  4790.  1Eh    WORD    offset for intercept flags
  4791.         (not used by MW386, set to 0000h)
  4792.         intercept flag = FFh if MS-DOS intercepts should be disabled
  4793.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  4794.         lock flag = FFh if backgrnd screen updates should be suspended
  4795.  22h 26 BYTEs    reserved
  4796. --------N-7F05-------------------------------
  4797. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  4798.     AH = 05h
  4799.     AL = stream number (01h-40h)
  4800. Note:    this function must be called in order to receive a report of another
  4801.       status change
  4802. SeeAlso: AH=04h"G8BPQ"
  4803. --------N-7F06-------------------------------
  4804. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  4805.     AH = 06h
  4806.     AL = drive number (1=A:, 2=B:, etc)
  4807.     ES:DI -> drive info record (see below)
  4808. Return: AX = status
  4809.         0000h successful
  4810.         ES:DI buffer filled
  4811.         0001h not shared drive
  4812.  
  4813. Format of drive info record:
  4814. Offset    Size    Description
  4815.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  4816.  02h    WORD    segment of allocation map (owner table)
  4817.         one byte per FAT entry, containing user ID owning that entry
  4818.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  4819.  06h    WORD    pointer to configuration file
  4820.  08h    WORD    total number of clusters
  4821.  0Ah    WORD    bytes per sector
  4822.  0Ch    WORD    sectors per cluster
  4823.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  4824. --------N-7F06-------------------------------
  4825. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  4826.     AH = 06h
  4827.     DL = drive number (1=A:,2=B:,etc)
  4828.     CX = number of clusters to allocate
  4829. Return: AH = status
  4830.         00h successful
  4831.         CX = number of clusters still free
  4832.         10h invalid shared drive request
  4833.         CL = first and second shared drives
  4834.         11h invalid cluster count (must be 01h-FFh)
  4835. --------N-7F06-------------------------------
  4836. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  4837.     AH = 06h
  4838.     AL = stream number (01h-40h)
  4839.     CX = subfunction
  4840.         0000h connect to node
  4841.         DL bit 0: use BBS callsign instead of Node Call
  4842.         0001h connect ot node
  4843.         use BBS Call if APPLMASK=1
  4844.         0002h disconnect
  4845.         0003h return user to node
  4846. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  4847. --------N-7F07-------------------------------
  4848. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  4849.     AH = 07h
  4850. Return: ES:DI -> shared drive list (see below)
  4851. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  4852.       be returned as shared
  4853.  
  4854. Format of shared drive list:
  4855. Offset    Size    Description
  4856.  00h    BYTE    string length
  4857.  01h    BYTE    number of shared drives
  4858.  02h  N BYTEs    one byte per shared drive
  4859. --------N-7F07-------------------------------
  4860. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  4861.     AH = 07h
  4862.     AL = stream number (01h-40h)
  4863. Return: BX = number of pending receive frames
  4864.     CX = number of unacknowledged sent frames
  4865.     DX = number of buffers available
  4866. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  4867. --------N-7F08-------------------------------
  4868. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  4869.     AH = 08h
  4870.     CL = function
  4871.         00h get original interrupt vector
  4872.         01h get Network Executive interrrupt
  4873.     AL = interrupt number
  4874.     DX:SI -> DWORD to hold interrupt vector
  4875. Return: AL = status
  4876.         00h successful
  4877.         01h interrupt vector not used by network executive
  4878.         02h invalid subfunction
  4879. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  4880.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  4881. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  4882. --------N-7F08--CL02-------------------------
  4883. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  4884.     AH = 08h
  4885.     CL = 02h
  4886.     DX = timeout in seconds
  4887. Return: AL = status
  4888.         00h successful
  4889.         02h invalid subfunction
  4890. --------N-7F08-------------------------------
  4891. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  4892.     AH = 08h
  4893.     AL = stream number (01h-40h)
  4894. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  4895.     ---v4.05+ ---
  4896.     AL = radio port to which channel is connected (level 2)
  4897.     AH = session type (see below)
  4898.     BX = L2 paclen for session
  4899.     CX = maximum frame size
  4900.     DX = L4 window size or 0000h if not L4 circuit
  4901. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4902.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4903. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  4904.  
  4905. Bitfields for session type:
  4906. Bit(s)    Description
  4907.  0    L2LINK
  4908.  1    SESSION
  4909.  2    UPLINK
  4910.  3    DOWNLIND
  4911.  5    BPQHOST
  4912. --------T-7F09-------------------------------
  4913. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  4914.     AH = 09h
  4915.     AL = priority (0-7)
  4916. Note:    the installation check consists of ensuring that the interrupt vector
  4917.       is not pointing at segment 0000h, then checking whether the byte
  4918.       at offset 0000h in the interrupt handler's segment is E9h
  4919. Index:    installation check;MultiLink Advanced
  4920. --------N-7F09-------------------------------
  4921. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  4922.     AH = 09h
  4923.     AL = application
  4924.         00h node
  4925.         01h BBS
  4926.         02h HOST
  4927.         03h SYSOP
  4928.     BL = what to get (00h callsign, 01h application name)
  4929.     ES:SI -> buffer for callsign/name string
  4930. Return: CX = length of returned string
  4931. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  4932. --------N-7F09-------------------------------
  4933. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  4934.     AH = 09h
  4935.     CL = function
  4936.         00h enable checking of RTNX.MUD file
  4937.         01h disable RTNX.MUD checking
  4938. --------N-7F09--CL02-------------------------
  4939. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  4940.     AH = 09h
  4941.     CL = 02h
  4942. Note:    in dedicated mode, the host will only poll for I/O requests from the
  4943.       slave processors, and not provide workstation services
  4944. --------N-7F09--CL03-------------------------
  4945. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  4946.     AH = 09h
  4947.     CL = 03h
  4948.     AL = default interrupt number (67h,7Fh,etc)
  4949. Return: CL = actual interrupt which handles specified interrupt's calls
  4950. SeeAlso: AH=08h
  4951. --------N-7F0A--CL00-------------------------
  4952. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  4953.     AH = 0Ah
  4954.     CL = 00h
  4955.     ES:DI -> buffer for system flags (see below)
  4956. Return: ES:DI buffer filled
  4957. Notes:    on a slave, only the NX_Busy flag is returned
  4958.     all three flags are at fixed positions, so this function only needs to
  4959.       be called once
  4960.     an interrupt handler should only perform DOS or device accesses when
  4961.       all three flags are 00h
  4962.  
  4963. Format of system flags:
  4964. Offset    Size    Description
  4965.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  4966.  04h    DWORD    pointer to device driver busy flag
  4967.  08h    DWORD    pointer to InTimer flag
  4968. --------N-7F0A-------------------------------
  4969. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  4970.     AH = 0Ah
  4971.     AL = radio port
  4972.     ES:SI -> buffer containing data to be sent
  4973.     CX = number of bytes to send
  4974. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  4975. --------N-7F0B--CL02-------------------------
  4976. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  4977.     AH = 0Bh
  4978.     CL = 02h
  4979.     AL = slave ID number
  4980.     CH = DOS to activate
  4981.         00h graphics DOS
  4982.         01h character DOS
  4983. Return: AL = status
  4984.         00h successful
  4985.         01h nothing done, proper DOS type already loaded
  4986. --------N-7F0B-------------------------------
  4987. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  4988.     AH = 0Bh
  4989.     ES:DI -> buffer for received data (see below)
  4990. Return: CX = number of bytes received
  4991. Note:    the specified buffer must be large enough to receive a full frame
  4992. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  4993.  
  4994. Format of received data:
  4995. Offset    Size    Description
  4996.  00h    WORD    internal control information
  4997.  02h    BYTE    port number (bit 7 set if transmitted frame)
  4998.  03h    WORD    frame length including this header
  4999.  05h    var    user data
  5000. --------N-7F0C-------------------------------
  5001. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  5002.     AH = 0Ch
  5003.     DX = function
  5004.         0001h update beacon text
  5005.         CX = length of data
  5006.         ES:SI -> data to be sent in beacons
  5007. SeeAlso: AH=09h"G8BPQ"
  5008. --------N-7F0F-------------------------------
  5009. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  5010.     AH = 0Fh
  5011. Return: AX = time marker (clock ticks modulo 64K)
  5012. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5013.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5014. SeeAlso: AH=01h"G8BPQ",INT 1A/AH=00h
  5015. --------N-7F10--CL00-------------------------
  5016. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  5017.     AH = 10h
  5018.     CL = 00h
  5019.     AL = channel number
  5020.     DX:DI -> channel buffer
  5021. Return: AL = status (00h-03h,0Dh) (see below)
  5022. Note:    may not be invoked from within a hardware interrupt handler
  5023. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  5024.  
  5025. Values for status:
  5026.  00h    successful
  5027.  01h    busy
  5028.  02h    channel range error (not 00h-3Fh)
  5029.  03h    invalid subfunction
  5030.  0Ah    channel not open
  5031.  0Ch    channel already locked
  5032.  0Dh    unable to open
  5033. --------N-7F10--CL01-------------------------
  5034. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  5035.     AH = 10h
  5036.     CL = 01h
  5037.     AL = channel number
  5038. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  5039. Note:    may not be invoked from within a hardware interrupt handler
  5040. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  5041. --------N-7F10--CL02-------------------------
  5042. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  5043.     AH = 10h
  5044.     CL = 02h
  5045.     AL = channel number
  5046. Return: AL = status (00h-03h,0Ah,0Ch) (see AH=10h/CL=00h)
  5047. Note:    may not be invoked from within a hardware interrupt handler
  5048. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  5049. --------N-7F10--CL03-------------------------
  5050. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  5051.     AH = 10h
  5052.     CL = 03h
  5053.     AL = channel number
  5054. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  5055. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  5056.       locked by receipt of a datagram
  5057.     may not be invoked from within a hardware interrupt handler
  5058. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  5059. --------N-7F10--CL04-------------------------
  5060. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  5061.     AH = 10h
  5062.     CL = 04h
  5063.     AL = channel number
  5064. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5065. Notes:    unlocks buffer after received datagram has been processed
  5066.     may not be invoked from within a hardware interrupt handler
  5067. SeeAlso: AH=10h/CL=00h
  5068. --------N-7F10--CL05-------------------------
  5069. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  5070.     AH = 10h
  5071.     CL = 05h
  5072. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5073. Notes:    clears all pending datagrams and clears buffer pointers before closing
  5074.       the channels
  5075.     may not be invoked from within a hardware interrupt handler
  5076. SeeAlso: AH=10h/CL=01h
  5077. --------N-7F10--CL06-------------------------
  5078. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  5079.     AH = 10h
  5080.     CL = 06h
  5081. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5082. Note:    may not be invoked from within a hardware interrupt handler
  5083. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  5084. --------N-7F10--CL07-------------------------
  5085. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  5086.     AH = 10h
  5087.     CL = 07h
  5088. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5089. Notes:    unlocks all locked channels which have no pending datagrams
  5090.     may not be invoked from within a hardware interrupt handler
  5091. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  5092. --------N-7F10--CL08-------------------------
  5093. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  5094.     AH = 10h
  5095.     CL = 08h
  5096.     DX = maximum channel number to lock
  5097. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5098. Notes:    locks channels numbered 00h through the value in DX
  5099.     may not be invoked from within a hardware interrupt handler
  5100. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  5101. --------N-7F10--CL09-------------------------
  5102. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  5103.     AH = 10h
  5104.     CL = 09h
  5105.     DX = maximum channel number to unlock
  5106. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5107. Notes:    unlocks channels numbered 00h through the value in DX
  5108.     may not be invoked from within a hardware interrupt handler
  5109. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  5110. --------N-7F11-------------------------------
  5111. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  5112.     AH = 11h
  5113.     DX:SI -> request block (see below)
  5114. Return: AL = status (see below)
  5115. Note:    if wildcard channel FFh used, actual channel number will be filled in
  5116. SeeAlso: AH=12h
  5117.  
  5118. Values for status:
  5119.  00h    successful
  5120.  01h    busy
  5121.  02h    channel range error (not 00h-3Fh)
  5122.  03h    invalid subfunction
  5123.  0Ah    packet too large (or <2 bytes if NTNX)
  5124.  0Bh    can't send packet to itself
  5125.  0Ch    invalid number of destinations
  5126.  0Dh    destination channel number out of range
  5127.  0Eh    destination user is busy
  5128.  0Fh    destination user has locked channel
  5129.  10h    channel not open
  5130.  11h    no datagram server on destination (NTNX)
  5131.  
  5132. Format of request block:
  5133. Offset    Size    Description
  5134.  00h    DWORD    pointer to packet to send
  5135.  04h    WORD    packet size in bytes (1-4096)
  5136.  06h    BYTE    number of destinations for packet (max 1Fh)
  5137.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  5138.  26h 31 BYTEs    destination channels (FFh = first available channel)
  5139.  45h 31 BYTEs    return destination statuses
  5140. --------N-7F12-------------------------------
  5141. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  5142.     AH = 12h
  5143.     AL = channel number being acknowledged
  5144.     DI:DX = 32-bit status to return to sender
  5145. Return: AL = status (see below)
  5146. Note:    also unlocks the channel, allowing the next datagram to be received
  5147. SeeAlso: AH=11h,AH=15h/CL=04h
  5148.  
  5149. Values for status:
  5150.  00h    successful
  5151.  01h    busy
  5152.  02h    channel range error (not 00h-3Fh)
  5153.  03h    invalid subfunction
  5154.  0Ah    channel not open
  5155.  0Bh    no message in channel
  5156.  0Ch    destination slave busy--retry (NTNX)
  5157.  0Dh    destination user not active
  5158.  0Eh    destination slave not active (NTNX)
  5159.  0Fh    destination disabled datagram service
  5160. --------V-7F1234-----------------------------
  5161. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  5162.     AX = 1234h
  5163. SeeAlso: AX=4321h
  5164. --------N-7F13--CL00-------------------------
  5165. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  5166.     AH = 13h
  5167.     CL = 00h
  5168. Note:    clears all pending datagrams and removes all channels opened in NTNX
  5169.       compatibility mode
  5170. --------N-7F14--CL00-------------------------
  5171. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  5172.     AH = 14h
  5173.     CL = 00h
  5174.     DX:DI -> application FAR receive service routine (see below)
  5175. Return: AL = status (00h-03h) (see AH=12h)
  5176. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5177.  
  5178. Service routine called with:
  5179.     DH = sender ID
  5180.     DL = channel with datagram
  5181.     interrupts disabled
  5182. Return: AL = response code
  5183.         00h leave buffer locked, set channel status, and repeat call later
  5184.         01h release channel buffer
  5185.         02h change buffer pointer to DX:DI
  5186.     AH,CX,DX,DI,SI may be destroyed
  5187. --------N-7F14--CL01-------------------------
  5188. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  5189.     AH = 14h
  5190.     CL = 01h
  5191.     DX:DI -> application FAR acknowledge service routine (see below)
  5192. Return: AL = status (00h-03h) (see AH=12h)
  5193. Note:    the service routine will be called as soon as an acknowledgment arrives
  5194. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  5195.  
  5196. Service routine called with:
  5197.     DS:SI -> acknowledge structure (see AH=15h/CL=04h)
  5198. Return: AL = response code
  5199.         00h application busy, network executive should call again later
  5200.         01h acknowledge accepted
  5201.     AH,DX,SI may be destroyed
  5202. --------N-7F14--CL02-------------------------
  5203. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  5204.     AH = 14h
  5205.     CL = 02h
  5206.     AL = channel number
  5207.     DX:DI -> receive buffer
  5208. Return: AL = status (00h-03h) (see AH=12h)
  5209. Note:    may be called from within a receive ISR or when a datagram is pending
  5210. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  5211. --------N-7F14--CL03-------------------------
  5212. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  5213.     AH = 14h
  5214.     CL = 03h
  5215. Return: DX:DI -> current receive ISR
  5216. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  5217. --------N-7F14--CL04-------------------------
  5218. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  5219.     AH = 14h
  5220.     CL = 04h
  5221. Return: DX:DI -> current acknowledge ISR
  5222. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5223. --------N-7F14--CL05-------------------------
  5224. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  5225.     AH = 14h
  5226.     CL = 05h
  5227.     DX:DI -> buffer for busy structure (see below)
  5228. Return: DX:DI buffer filled
  5229.  
  5230. Format of busy structure:
  5231. Offset    Size    Description
  5232.  00h    DWORD    pointer to busy flag byte
  5233.  04h    WORD    fixed port address (FF00h)
  5234. --------N-7F15--CL00-------------------------
  5235. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  5236.     AH = 15h
  5237.     CL = 00h
  5238.     AL = channel number
  5239.     DX:DI -> status structure (see below)
  5240. Return: AL = status (00h-03h) (see AH=12h)
  5241. SeeAlso: AH=15h/CL=01h
  5242.  
  5243. Format of status structure:
  5244. Offset    Size    Description
  5245.  00h    BYTE    channel status
  5246.         bit 0: channel open
  5247.         bit 1: channel buffer contains received data
  5248.         bit 7: channel locked
  5249.  01h    BYTE    sender ID
  5250. --------N-7F15--CL01-------------------------
  5251. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  5252.     AH = 15h
  5253.     CL = 01h
  5254.     DX:DI -> full-channel structure
  5255. Return: AL = status
  5256.         00h successful
  5257.         01h busy
  5258.         0Ah no datagrams available
  5259. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  5260.       and NTNX return the oldest datagram
  5261. SeeAlso: AH=15h/CL=00h
  5262.  
  5263. Format of full-channel structure:
  5264. Offset    Size    Description
  5265.  00h    BYTE    number of channel with oldest datagram
  5266.  01h    BYTE    sender ID
  5267. --------N-7F15--CL02-------------------------
  5268. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  5269.     AH = 15h
  5270.     CL = 02h
  5271. Return: AH = number of channels available (40h for MW386)
  5272. Note:    the application may always assume at least 32 channels available
  5273. SeeAlso: AH=15h/CL=03h
  5274. --------N-7F15--CL03-------------------------
  5275. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  5276.     AH = 15h
  5277.     CL = 03h
  5278.     DX:DI -> WORD for return value
  5279. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  5280. SeeAlso: AH=15h/CL=02h
  5281. --------N-7F15--CL04-------------------------
  5282. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  5283.     AH = 15h
  5284.     CL = 04h
  5285.     DX:DI -> status structure (see below)
  5286. Return: AL = status
  5287.         00h successful
  5288.         DX:DI structure filled
  5289.         01h busy
  5290.         0Ah no acknowledgement has arrived
  5291. SeeAlso: AH=12h,AH=14h/CL=01h
  5292.  
  5293. Format of status structure:
  5294. Offset    Size    Description
  5295.  00h    BYTE    sender ID
  5296.  01h    BYTE    channel number
  5297.  02h  4 BYTEs    receiver status (see AH=12h)
  5298. --------N-7F16-------------------------------
  5299. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  5300.     AH = 16h
  5301.     DX:SI -> transfer structure (see below)
  5302. Return: AL = status
  5303.         00h successful
  5304.         0Ah source or destination out of range
  5305.         0Bh transfer kernal busy--try again
  5306. Notes:    this call transfers memory contents directly between users; both source
  5307.       and destination user IDs may differ from the caller's ID
  5308.     no segment wrap is allowed
  5309.  
  5310. Format of transfer structure:
  5311. Offset    Size    Description
  5312.  00h    WORD    bytes to transfer
  5313.  02h    BYTE    source ID
  5314.         FEh = caller
  5315.  03h    DWORD    source address
  5316.  07h    BYTE    destination ID
  5317.         FFh = all slaves except caller
  5318.         FEh = caller
  5319.  08h    DWORD    destination address
  5320. --------N-7F21-------------------------------
  5321. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  5322.     AH = 21h
  5323.     AL = sender's user ID
  5324.     DS:DX -> control packet (see below)
  5325. Note:    messages or commands are ignored if disabled by the destination user
  5326. SeeAlso: AH=22h
  5327.  
  5328. Format of control packet:
  5329. Offset    Size    Description
  5330.  00h    BYTE    packet type
  5331.         00h message
  5332.         01h NTNX command
  5333.         02h MW386 command
  5334.  01h    BYTE    destination user ID or 'A' for all users
  5335.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  5336.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  5337. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  5338. --------N-7F22-------------------------------
  5339. INT 7F - Alloy NTNX - GET MESSAGE
  5340.     AH = 22h
  5341. Return: pending messages displayed on user's screen
  5342. SeeAlso: AH=21h
  5343. --------N-7F24-------------------------------
  5344. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  5345.     AH = 24h
  5346.     CL = function
  5347.         00h attach
  5348.         01h release
  5349.     CH = drive (0=A:,1=B:,etc)
  5350. Return: AX = status
  5351.         00h successful
  5352.         01h invalid request
  5353.         02h already attached
  5354.         03h not attached
  5355.         04h lock table full
  5356. Note:    only drives on the current machine may be attached
  5357. --------N-7F24-------------------------------
  5358. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  5359.     AH = 24h
  5360.     CL = function
  5361.         02h attach host
  5362.         03h release host
  5363. Return: AX = status
  5364.         00h successful
  5365.         01h invalid request
  5366.         02h already attached
  5367.         03h not attached
  5368.         04h lock table full
  5369. Note:    the host processor may be attached in order to perform I/O via the host
  5370. --------N-7F25--CL00-------------------------
  5371. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  5372.     AH = 25h
  5373.     CL = 00h
  5374. Return: AH = version suffix letter
  5375.     CH = major version number
  5376.     CL = minor version number
  5377. SeeAlso: AH=25h/CL=01h
  5378. --------N-7F25--CL01-------------------------
  5379. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  5380.     AH = 25h
  5381.     CL = 01h
  5382. Return: CL = type
  5383.         00h RTNX
  5384.         01h ATNX
  5385.         02h NTNX
  5386.         03h BTNX
  5387.         04h MW386
  5388.         05h ANSK
  5389. SeeAlso: AH=25h/CL=00h
  5390. ----------7F2525-----------------------------
  5391. INT 7F - TIGA Communications Driver v2.05 - ???
  5392.     AX = 2525h
  5393.     BX = ???
  5394. Return: ???
  5395. SeeAlso: AX=4321h,AX=5555h
  5396. --------N-7F26--CL00-------------------------
  5397. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  5398.     AH = 26h
  5399.     CL = 00h
  5400. Return: AX = file mode bits (see below)
  5401. Note:    MW386 does not support file modes, and always returns AX=001Fh
  5402. SeeAlso: AH=26h,AH=26h/CL=06h
  5403.  
  5404. Bitfields for file mode bits:
  5405. Bit(s)    Description
  5406.  0    directory protection enabled
  5407.  1    extended open enabled
  5408.  2    flush on every disk write
  5409.  3    flush on every disk write in locked interval
  5410.  4    flush on reads from simultaneously opened file
  5411. --------N-7F26-------------------------------
  5412. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  5413.     AH = 26h
  5414.     CL = check type to set/reset
  5415.         01h directory protection
  5416.         02h extended open
  5417.         03h flush on every disk write
  5418.         04h flush on disk write if any lock set during write
  5419.         05h flush on all reads if file written
  5420.     AL = new state (00h off, 01h on)
  5421. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  5422. --------N-7F26--CL06-------------------------
  5423. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  5424.     AH = 26h
  5425.     CL = 06h
  5426. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  5427. SeeAlso: AH=26h/CL=00h
  5428. --------N-7F30-------------------------------
  5429. INT 7F - Alloy MW386 - GET PORT INFORMATION
  5430.     AH = 30h
  5431.     CX = MW386 port number
  5432. Return: AL = FFh if port not found
  5433.        else     driver unit number
  5434.            BL = port mode
  5435.            BH = port type
  5436.            02h remote
  5437.            DH = owner's machine ID
  5438.            DL = owner's user ID
  5439. SeeAlso: INT 17/AH=8Bh
  5440. --------N-7F31-------------------------------
  5441. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  5442.     AH = 31h
  5443.     ???
  5444. Return: ???
  5445. --------N-7F37-------------------------------
  5446. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  5447.     AH = 37h
  5448. Return: ES:AX -> semaphore table
  5449. --------N-7F37-------------------------------
  5450. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  5451.     AH = 37h
  5452.     DS:DX -> ASCIZ string to display
  5453. Note:    if the string is empty, a terminal update will be forced
  5454. --------N-7F38-------------------------------
  5455. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  5456.     AH = 38h
  5457.     AL = new terminal driver number
  5458.         FFh dummy driver
  5459.         FEh current driver
  5460.         FDh load new driver
  5461.         DS:SI -> new driver
  5462. SeeAlso: AH=39h
  5463. --------N-7F39-------------------------------
  5464. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  5465.     AH = 39h
  5466.     AL = new terminal driver number
  5467.     DL = user number (FFh = caller)
  5468.     DH = machine number if DL <> FFh
  5469. Return: CF set if invalid user number
  5470.     CF clear if successful
  5471. Notes:    only available to supervisors
  5472.     the new driver number will not take effect until the user is rebooted
  5473. SeeAlso: AH=38h
  5474. --------N-7F3A-------------------------------
  5475. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  5476.     AH = 3Ah
  5477.     DL = user number (FFh = caller)
  5478.     DH = machine number
  5479. Return: CF clear if successful
  5480.         AH = terminal driver number
  5481.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  5482.         CL = parity (00h none, 01h even, 02h odd)
  5483.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5484.     CF set if invalid user number
  5485. SeeAlso: AH=3Bh
  5486. --------N-7F3B-------------------------------
  5487. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  5488.     AH = 3Bh
  5489.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  5490.     CL = parity (00h none, 01h even, 02h odd)
  5491.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5492.     DL = user number (FFh = caller)
  5493.     DH = machine number for user
  5494. Return: CF set if invalid user number
  5495. Notes:    only available to supervisors
  5496.     the new parameters will take effect immediately if the user's terminal
  5497.       has not been started, else AH=3Dh must be called to post the changes
  5498. SeeAlso: AH=3Ah,AH=3Dh
  5499. --------N-7F3C-------------------------------
  5500. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  5501.     AH = 3Ch
  5502.     AL = new state
  5503.          00h disabled, 01h enabled
  5504.     DL = user number (FFh = caller)
  5505.     DH = machine number for user
  5506. Return: CF set if invalid user number
  5507. Note:    only available to supervisors
  5508. SeeAlso: AH=3Dh
  5509. --------N-7F3D-------------------------------
  5510. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  5511.     AH = 3Dh
  5512. Note:    should be called whenever a program changes the terminal type or its
  5513.       parameters
  5514. SeeAlso: AH=3Bh
  5515. --------N-7F41-------------------------------
  5516. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  5517.     AH = 41h
  5518.     AL = user ID
  5519.     DS:DX -> ASCIZ filename
  5520. Return: AL = status
  5521.         00h successful
  5522.         01h invalid function
  5523.         02h already locked
  5524.         03h unable to lock
  5525.         04h lock table full
  5526. Note:    requests exclusive read/write access to file
  5527. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  5528. --------N-7F41-------------------------------
  5529. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  5530.     AH = 41h
  5531.     AL = user ID
  5532.     DS:DX -> ASCIZ semaphore name
  5533. Return: AL = status
  5534.         00h successful
  5535.         01h invalid function
  5536.         02h semaphore already locked
  5537.         03h unable to lock semaphore
  5538.         04h semaphore space exhausted
  5539. SeeAlso: AH=00h,AH=42h"MW386"
  5540. --------N-7F42-------------------------------
  5541. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  5542.     AH = 42h
  5543.     AL = user ID
  5544.     DS:DX -> ASCIZ filename
  5545. Return: AL = status
  5546.         00h successful
  5547.         01h invalid function
  5548.         02h already locked
  5549.         03h unable to lock
  5550.         04h lock table full
  5551. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  5552. --------N-7F42-------------------------------
  5553. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  5554.     AH = 42h
  5555.     AL = user ID
  5556.     DS:DX -> ASCIZ semaphore name
  5557. Return: AL = status
  5558.         00h successful
  5559.         01h invalid function
  5560.         03h unable to unlock semaphore
  5561. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  5562. ----------7F4321-----------------------------
  5563. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  5564.     AX = 4321h
  5565. Return: AX = 0000h if installed
  5566. Note:    INT 7F is the default, but may be overridden
  5567. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  5568. --------N-7F4E-------------------------------
  5569. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  5570.     AH = 4Eh
  5571.     AL = error mode flags
  5572.         bit 0: display critical disk errors
  5573.         bit 1: display sharing errors
  5574.     DX = 4E58h ("NX")
  5575. Return: AL = status
  5576.         00h successful
  5577. SeeAlso: AH=4Fh
  5578. --------N-7F4F-------------------------------
  5579. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  5580.     AH = 4Fh
  5581.     AL = FCB mode
  5582.         02h read/write compatibility
  5583.         42h read/write shared
  5584.     DX = 4E58h ("NX")
  5585. Return: AL = status
  5586.         00h successful
  5587. --------V-7F5555-----------------------------
  5588. INT 7F - TIGA Communications Driver v2.05 - ???
  5589.     AX = 5555h
  5590.     BX = ???
  5591. Return: ???
  5592. SeeAlso: AX=4321h
  5593. --------N-7F81-------------------------------
  5594. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  5595.     AH = 81h
  5596.     AL = user ID
  5597.     DS:DX -> ASCIZ device name
  5598. SeeAlso: AH=82h
  5599. --------N-7F82-------------------------------
  5600. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  5601.     AH = 82h
  5602.     AL = user ID
  5603.     DS:DX -> ASCIZ device name
  5604. SeeAlso: AH=81h
  5605. --------N-7FA0-------------------------------
  5606. INT 7F - Alloy MW386 - GET USER NAME
  5607.     AH = A0h
  5608.     DL = user number (FFh = caller)
  5609.     DH = machine number for user
  5610.     ES:DI -> 17-byte buffer for ASCIZ user name
  5611. Return: CF set if invalid user number
  5612. SeeAlso: AH=03h,AH=A1h
  5613. --------N-7FA1-------------------------------
  5614. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  5615.     AH = A1h
  5616. Return: AL = process number
  5617.     DL = user number
  5618.     DH = machine number
  5619. SeeAlso: AH=03h,AH=A0h,AH=A2h
  5620. --------N-7FA2-------------------------------
  5621. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  5622.     AH = A2h
  5623.     DL = user number (FFh = caller)
  5624.     DH = machine number for user
  5625. Return: CF clear if successful
  5626.         AL = privilege level
  5627.         00h supervisor
  5628.         01h high
  5629.         02h medium
  5630.         03h low
  5631.     CF set if invalid user number
  5632. SeeAlso: AH=A1h,AH=A3h
  5633. --------N-7FA3-------------------------------
  5634. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  5635.     AH = A3h
  5636.     DL = user number
  5637.     DH = machine number for user
  5638. Return: CF clear if successful
  5639.         AL = login state
  5640.         00h never logged in
  5641.         01h currently logged out
  5642.         03h currently logged in
  5643.     CF set if invalid user number or user not active
  5644. SeeAlso: AH=A2h
  5645. --------N-7FA4-------------------------------
  5646. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  5647.     AH = A4h
  5648.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  5649. Return: AL = 00h if accepted
  5650.        else     invalid password
  5651. --------N-7FA500-----------------------------
  5652. INT 7F - Alloy MW386 - GET USER STATUS
  5653.     AX = A500h
  5654.     DI = machine number and user number
  5655. Return: CF clear if successful
  5656.         BX = user flags
  5657.         bit 5: allow messages
  5658.         CL = scan code for task manager hotkey
  5659.         CH = scan code for spooler hotkey
  5660.         DL = scan code for task swapper hotkey
  5661.         DH = modifier key status
  5662.     CF set if invalid user number
  5663. SeeAlso: AX=A501h
  5664. Index:    hotkeys;Alloy MW386
  5665. --------N-7FA501-----------------------------
  5666. INT 7F - Alloy MW386 - SET USER STATUS
  5667.     AX = A501h
  5668.     BX = user flags (see above)
  5669.     CL = scan code for task manager hotkey
  5670.     CH = scan code for spooler hotkey
  5671.     DL = scan code for task swapper hotkey
  5672.     DH = modifier key status
  5673.     DI = machine number and user number
  5674. Return: CF set if invalid user number
  5675. Note:    must have supervisor privilege to set another user's status
  5676. SeeAlso: AX=A500h
  5677. Index:    hotkeys;Alloy MW386
  5678. --------V-7FABCDBX0000-----------------------
  5679. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  5680.     AX = ABCDh
  5681.     BX = 0000h
  5682. Return: AX = total number of functions available
  5683.     ES:BX -> entry point array
  5684. SeeAlso: AX=0104h,AX=0105h
  5685.  
  5686. Function numbers:
  5687.  00h    check initialization and reset
  5688.  14h    set user-defined subroutine
  5689. Notes:    each driver function takes two stack parameters using Pascal calling
  5690.       conventions: address of parameter block and address of results buffer
  5691.     all pointers are FAR pointers
  5692.     on return, AX contains the status of the call:
  5693.         AX = 0000h successful
  5694.          0001h invalid input
  5695.          0002h interface error
  5696.          0003h unable to perform function
  5697.  
  5698. Format of parameter block for function 00h:
  5699. Offset    Size    Description
  5700.  00h    WORD    0000h (function number)
  5701. Note:    this function should be called before any other device driver functions
  5702.  
  5703. Format of results buffer for function 00h:
  5704. Offset    Size    Description
  5705.  00h    WORD    touch screen status
  5706.         0000h unavailable
  5707.         0001h uncalibrated
  5708.         FFFFh available
  5709.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  5710. Notes:    the following driver parameters will have been reset to zero:
  5711.       touchdown counter, liftoff counter, position at last touch, position
  5712.       at last lift, int call mask, select on count, select off count,
  5713.       pos select on count, pos select off count.
  5714.     the following driver parameters will have been reset as listed:
  5715.       mouse emulation mode: left on
  5716.       thresholds: 46 on screen, 96 push harder, 80 push release
  5717.       x, y hysteresis: 400
  5718.       data repeat rate: 40/sec
  5719.       select mechanism: push-harder - first-touch
  5720.       coordinate origin: upper left corner
  5721.       filter frequency: medium
  5722.       data block mask: all enabled
  5723.       click lock: on
  5724. --------N-7FB0-------------------------------
  5725. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  5726.     AH = B0h
  5727.     AL = user number
  5728.     DS = code segment
  5729. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  5730.       or INT 7F locking functions
  5731. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  5732. --------N-7FB1--SF00-------------------------
  5733. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  5734.     AH = B1h subfn 00h
  5735.     AL = (bits 7-5) 000
  5736.          (bits 4-0) user ID
  5737. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  5738.       INT 7F locking functions
  5739. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5740. --------N-7FB2--SF01-------------------------
  5741. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  5742.     AH = B2h subfn 01h
  5743.     AL = (bits 7-5) 001
  5744.          (bits 4-0) user ID
  5745. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  5746. --------N-7FB3--SF02-------------------------
  5747. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  5748.     AH = B3h subfn 02h
  5749.     AL = (bits 7-5) 010
  5750.          (bits 4-0) user ID
  5751. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  5752. --------N-7FB4-------------------------------
  5753. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  5754.     AH = B4h
  5755.     AL = user ID
  5756. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  5757. --------N-7FC3-------------------------------
  5758. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  5759.     AH = C3h
  5760.     AL = byte to write
  5761. Return: CF clear if successful
  5762.     CF set on error
  5763. SeeAlso: AH=C6h
  5764. --------N-7FC5-------------------------------
  5765. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  5766.     AH = C5h
  5767.     AL = new console mode
  5768.         00h keyboard indirect
  5769.         01h keyboard direct
  5770.         02h data handshake enforced
  5771.         03h no data handshake
  5772. Return: CF clear if successful
  5773.         AL = prior console mode
  5774.     CF set on error (caller is not remote user)
  5775. Note:    modes 2 and 3 may be used for input through the console port; no video
  5776.       output should be performed in these modes
  5777. --------N-7FC6-------------------------------
  5778. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  5779.     AH = C6h
  5780.     AL = byte to write
  5781. Return: CF clear if successful
  5782.     CF set on error (caller is not remote user)
  5783. Note:    any terminal driver data translation will be bypassed
  5784. SeeAlso: AH=C3h,AH=C7h
  5785. --------N-7FC7-------------------------------
  5786. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  5787.     AH = C7h
  5788. Return: CF clear if successful
  5789.         AL = byte read
  5790.     CF set on error (no data available or caller is not remote user)
  5791. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  5792. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  5793. --------N-7FC8-------------------------------
  5794. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  5795.     AH = C8h
  5796.     AL = maximum bytes to read
  5797.     ES:DI -> buffer for console data
  5798. Return: CF clear if successful
  5799.         CX = number of bytes read
  5800.     CF set on error (caller is not remote user)
  5801. SeeAlso: AH=C7h
  5802. --------N-7FCF-------------------------------
  5803. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  5804.     AH = CFh
  5805.     DS:DX -> ASCIZ string containing user number to be reset
  5806. SeeAlso: AH=D6h
  5807. --------N-7FD6-------------------------------
  5808. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  5809.     AH = D6h
  5810.     DS:DX -> reset packet (see below)
  5811. Return: never if successful
  5812. Note:    all users will be shut down immediately if successful
  5813. SeeAlso: AH=CFh
  5814.  
  5815. Format of reset packet:
  5816. Offset    Size    Description
  5817.  00h    DWORD    reset code (60606060h)
  5818.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  5819. --------N-7FD7-------------------------------
  5820. INT 7F - Alloy MW386 - POST EVENT
  5821.     AH = D7h
  5822.     AL = user number (if local event)
  5823.     DX = event number
  5824. --------N-7FD8-------------------------------
  5825. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  5826.     AH = D8h
  5827. Return: CF set on error
  5828. Note:    forces all disk buffers to be written out immediately
  5829. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  5830. --------N-7FDB-------------------------------
  5831. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  5832.     AH = DBh
  5833. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  5834. --------N-7FE0-------------------------------
  5835. INT 7F - Alloy MW386 - CREATE DOS TASK
  5836.     AH = E0h
  5837.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5838.     DS:DX -> ASCIZ task name (max 16 bytes)
  5839. Return: CF clear if successful
  5840.         AL = task create ID
  5841.     CF set on error
  5842. Note:    only foreground DOS tasks can use this function
  5843. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  5844. --------N-7FE1-------------------------------
  5845. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  5846.     AH = E1h
  5847.     AL = create ID (from AH=E0h)
  5848. Return: AL = DOS process number
  5849.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5850. Note:    this function should not be called immediately after creating a new
  5851.       DOS task, since the new task is being initialized by a concurrent
  5852.       process
  5853. SeeAlso: AH=E0h,AH=E2h
  5854. --------N-7FE2-------------------------------
  5855. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  5856.     AH = E2h
  5857.     AL = DOS process number (from AH=E1h)
  5858. Return: CF set on error (invalid process number or caller not foreground task)
  5859. Notes:    specified task becomes the foreground task and current task is placed
  5860.       in the background
  5861.     may only be called by a foreground task
  5862. SeeAlso: AH=E0h,AH=E1h
  5863. --------N-7FE3-------------------------------
  5864. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  5865.     AH = E3h
  5866. ---v1.x---
  5867.     AL = user number
  5868. ---v2+---
  5869.     BH = user number
  5870.     BL = task number
  5871. ---
  5872.     DS:DX -> ASCIZ task name
  5873. Return: CF set on error (invalid process number)
  5874. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  5875. --------N-7FE4-------------------------------
  5876. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  5877.     AH = E4h
  5878. ---v1.x---
  5879.     AL = user number
  5880. ---v2+---
  5881.     BH = user number
  5882.     BL = task number
  5883. ---
  5884.     ES:DI -> buffer for task name
  5885. Return: CF clear if successful
  5886.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5887.         DX = task flags
  5888.         bit 7: MS-DOS process
  5889.         ES:DI buffer filled
  5890.     CF set on error (invalid process number)
  5891. SeeAlso: AH=E3h,AH=E5h
  5892. --------N-7FE5-------------------------------
  5893. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  5894.     AH = E5h
  5895.     DS:DX -> ASCIZ task name
  5896.     BH = user number
  5897. Return: CF clear if successful
  5898.         AL = DOS process number
  5899.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5900.     CF set on error (no match for name)
  5901. SeeAlso: AH=E3h,AH=E4h
  5902. --------N-7FE6-------------------------------
  5903. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  5904.     AH = E6h
  5905. Return: AX = number of processes available to current user
  5906. SeeAlso: AH=E0h
  5907. --------N-7FE7-------------------------------
  5908. INT 7F - Alloy MW386 - REMOVE DOS TASK
  5909.     AH = E7h
  5910.     AL = DOS process number
  5911. Return: CF set on error (invalid process number or first process)
  5912. Note:    can only be called by a foreground task
  5913. SeeAlso: AH=E0h
  5914. --------N-7FE8-------------------------------
  5915. INT 7F - Alloy MW386 - DOS TASK DELAY
  5916.     AH = E8h
  5917.     CX = delay time in milliseconds
  5918. Note:    a delay of 0 may be used to surrender the current time slice
  5919. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  5920. SeeAlso: INT 2F/AX=1680h
  5921. --------N-7FF0-------------------------------
  5922. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  5923.     AH = F0h
  5924.     AL = group number
  5925.     DS:DX -> ASCIZ directory name
  5926. Return: CF clear if successful
  5927.         AX = status
  5928.         0002h directory not found
  5929.         0003h directory not found
  5930.         0005h directory in use, cannot be restricted
  5931.         02xxh restricted to group xxh
  5932.     CF set on error
  5933. Note:    the restriction on the directory may be removed by calling this
  5934.       function with group 0, then using AH=F1h to assign the directory to
  5935.       group 0
  5936. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  5937. --------N-7FF1-------------------------------
  5938. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  5939.     AH = F1h
  5940.     AL = group number
  5941.     DS:DX -> ASCIZ directory name
  5942. Notes:    performs permanent assignment to a group; no immediate action is taken
  5943.       unless the directory has been restricted with AH=F0h
  5944.     may be used to restrict a nonexistent directory
  5945. SeeAlso: AH=F0h
  5946. --------N-7FF2-------------------------------
  5947. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  5948.     AH = F2h
  5949.     CX = entry number
  5950.     ES:DI -> 64-byte buffer
  5951. Return: CF clear if successful
  5952.         buffer filled with 63-byte directory info and 1-byte group number
  5953.     CF set on error (invalid entry)
  5954. SeeAlso: AH=F0h,AH=F3h
  5955. --------N-7FF3-------------------------------
  5956. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  5957.     AH = F3h
  5958.     AL = group number
  5959.     CX = entry number
  5960.     ES:DI -> 64-byte buffer
  5961. Return: CF clear if successful
  5962.         CX = next entry number
  5963.         buffer filled with 63-byte directory info and 1-byte group number
  5964.     CF set on error (no more matching entries)
  5965. Note:    like AH=F2h, but only returns directories belonging to the specified
  5966.       group
  5967. SeeAlso: AH=F2h
  5968. --------N-7FF8-------------------------------
  5969. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  5970.     AH = F8h
  5971.     AL = group number
  5972.     DL = user number
  5973.     DH = machine number (currently 00h)
  5974. Return: CF clear if successful
  5975.     CF set on error (user already in maximum number of groups)
  5976. Note:    each user is allowed eight group assignments
  5977. SeeAlso: AH=F9h,AH=FAh
  5978. --------N-7FF9-------------------------------
  5979. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  5980.     AH = F9h
  5981.     AL = group number
  5982.     DL = user number
  5983.     DH = machine number (currently 00h)
  5984. Return: CF set if failed
  5985. SeeAlso: AH=F8h,AH=FAh
  5986. --------N-7FFA-------------------------------
  5987. INT 7F - Alloy MW386 - GET USER GROUP LIST
  5988.     AH = FAh
  5989.     DL = user number
  5990.     DH = machine number (currently 00h)
  5991.     ES:DI -> 16-byte buffer for group list
  5992. Return: CX = number of groups
  5993.     ES:DI buffer filled with group numbers
  5994. SeeAlso: AH=F8h,AH=F9h
  5995. --------N-7FFB-------------------------------
  5996. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  5997.     AH = FBh
  5998.     CL = group number
  5999.     ES:DI -> ASCIZ group name (max 17 bytes)
  6000. SeeAlso: AH=FCh
  6001. --------N-7FFC-------------------------------
  6002. INT 7F - Alloy MW386 - GET GROUP NAME
  6003.     AH = FCh
  6004.     CL = group number
  6005.     ES:DI -> 17-byte buffer for ASCIZ name
  6006. Return: ES:DI buffer filled
  6007. Note:    if the group has not been named, "(unnamed)" is returned
  6008. SeeAlso: AH=FBh
  6009. ----------80---------------------------------
  6010. INT 80 - Q-PRO4 - ???
  6011. --------r-80---------------------------------
  6012. INT 80 - reserved for BASIC
  6013. Note:    this vector and INT 81 through INT ED are modified but not restored by
  6014.       Direct Access v4.0, and may be left dangling by other programs
  6015.       written with the same version of compiled BASIC
  6016. SeeAlso: INT 81"BASIC"
  6017. --------s-80----BL00-------------------------
  6018. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  6019.     BL = 00h
  6020.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  6021. Return: AX = initialization result (see below)
  6022. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  6023.       which provides access to multiple drivers for the SoundBlaster
  6024.       board through a single interface
  6025. Note:    SBSIM may use any interrupt in the range 80h to BFh; the installation
  6026.       check consists of testing for the signature "SBSIM" at offset 103h
  6027.       in the interrupt handler's segment.
  6028. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  6029. SeeAlso: INT 80/BX=0000h"SBSIM"
  6030.  
  6031. Values for error code:
  6032.  01h    busy--currently in use
  6033.  02h    bad driver specified
  6034.  03h    invalid function
  6035.  04h    voice process already active
  6036.  05h    couldn't start CT-VOICE
  6037.  06h    couldn't start CTVDSK
  6038.  07h    invalid SBSIM handle
  6039.  08h    buffer not initialized yet
  6040.  09h    bad filename
  6041.  0Ah    bad file handle
  6042.  0Bh    driver not started yet
  6043.  0Ch    XMS driver not installed
  6044.  0Dh    no free SBSIM handles
  6045.  0Eh    bad file type
  6046.  0Fh    couldn't free XMS block
  6047.  10h    invalid source selected
  6048.  11h    get pan position failed
  6049.  12h    set pan position failed
  6050.  13h    set volume failed
  6051.  14h    couldn't start fade/pan
  6052.  15h    couldn't stop fade/pan
  6053.  16h    couldn't pause fade/pan
  6054.  17h    not a fade/pan operation
  6055.  18h    bad mode for fade/pan
  6056.  19h    couldn't start fade/pan
  6057.  1Ah    source not fading/panning
  6058.  1Bh    FM or MIDI already playing
  6059.  1Ch    bad MIDI mapper format
  6060. --------s-80----BL01-------------------------
  6061. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  6062.     BL = 01h
  6063.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  6064. Return: AX = result
  6065. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  6066. --------s-80----BL02-------------------------
  6067. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  6068.     BL = 02h
  6069.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  6070. Return: nothing
  6071. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  6072. --------s-80----BL03-------------------------
  6073. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  6074.     BL = 03h
  6075.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  6076. Return: nothing
  6077. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  6078. SeeAlso: INT 80/BL=05h
  6079. --------s-80----BL04-------------------------
  6080. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  6081.     BL = 04h
  6082.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  6083. Return: nothing
  6084. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  6085. --------s-80----BL05-------------------------
  6086. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  6087.     BL = 05h
  6088.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  6089. Return: AX = status
  6090. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  6091. --------s-80----BX0000-----------------------
  6092. INT 80 - SoundBlaster SBFM driver - GET VERSION
  6093.     BX = 0000h
  6094. Return: ???
  6095. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  6096. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh
  6097. --------s-80----BX0000-----------------------
  6098. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  6099.     BX = 0000h
  6100. Return: AX = version (AH = major, AL = minor)
  6101. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  6102.       which provides access to multiple drivers for the SoundBlaster
  6103.       board through a single interface
  6104. Note:    SBSIM may use any interrupt in the range 80h to BFh; the installation
  6105.       check consists of testing for the signature "SBSIM" at offset 103h
  6106.       in the interrupt handler's segment.
  6107. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  6108. Index:    installation check;SBSIM|installation check;SoundBlaster
  6109. --------s-80----BX0001-----------------------
  6110. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  6111.     BX = 0001h
  6112.     DX:AX -> music status byte
  6113. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  6114. --------s-80----BX0001-----------------------
  6115. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  6116.     BX = 0001h
  6117. Return: AX = bit flags for loaded drivers (see below)
  6118. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  6119.  
  6120. Bitfields for loaded drivers:
  6121. Bit(s)    Description
  6122.  0    FM
  6123.  1    double disk-buffered voice driver (DDBV)
  6124.  2    memory voice driver
  6125.  3    auxiliary driver (mixer)
  6126.  4    MIDI
  6127. --------s-80----BX0002-----------------------
  6128. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  6129.     BX = 0002h
  6130.     CX = number of instruments
  6131.     DX:AX -> instrument table
  6132. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  6133. --------s-80----BX0002-----------------------
  6134. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  6135.     BX = 0002h
  6136.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  6137. Return: CF clear if successful
  6138.         DX:AX = entry point
  6139.     CF set on error
  6140. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  6141. --------s-80----BX0003-----------------------
  6142. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  6143.     BX = 0003h
  6144.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  6145.         FFFFh to restore to 18.2 Hz
  6146. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  6147. --------s-80----BX0004-----------------------
  6148. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  6149.     BX = 0004h
  6150.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  6151. Note:    default frequency is 96 Hz
  6152. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  6153. --------s-80----BX0005-----------------------
  6154. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  6155.     BX = 0005h
  6156.     AX = semi-tone offset
  6157. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  6158. --------s-80----BX0005-----------------------
  6159. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  6160.     BX = 0005h
  6161.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  6162. Return: CF clear if successful
  6163.         DX:AX -> buffer
  6164.         CX = buffer size in K
  6165.     CF set on error
  6166. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  6167.       which provides access to multiple drivers for the SoundBlaster
  6168.       board through a single interface
  6169. Note:    SBSIM may use any interrupt in the range 80h to BFh; the installation
  6170.       check consists of testing for the signature "SBSIM" at offset 103h
  6171.       in the interrupt handler's segment.
  6172. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  6173. --------s-80----BX0006-----------------------
  6174. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  6175.     BX = 0006h
  6176.     DX:AX -> music block
  6177. Return: AX = status
  6178.         0000h successful
  6179.         0001h music already active
  6180. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  6181. --------s-80----BX0007-----------------------
  6182. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  6183.     BX = 0007h
  6184. Return: AX = status
  6185.         0000h successful
  6186.         0001h music not active
  6187. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  6188. --------s-80----BX0008-----------------------
  6189. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  6190.     BX = 0008h
  6191. Return: AX = status
  6192.         0000h successful
  6193.         0001h music is active
  6194. SeeAlso: BX=0000h"SBFM"
  6195. --------s-80----BX0009-----------------------
  6196. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  6197.     BX = 0009h
  6198. Return: AX = status
  6199.         0000h successful
  6200.         0001h no music active
  6201. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  6202. --------s-80----BX000A-----------------------
  6203. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  6204.     BX = 000Ah
  6205. Return: AX = status
  6206.         0000h successful
  6207.         0001h no music paused
  6208. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  6209. --------s-80----BX000B-----------------------
  6210. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  6211.     BX = 000Bh
  6212.     DX:AX -> trap routine
  6213. SeeAlso: BX=0000h"SBFM"
  6214. --------s-80----BX0400-----------------------
  6215. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  6216.     BX = 0400h
  6217.     AX = sound source (see below)
  6218. Return: CF clear if successful
  6219.         AX = volume
  6220.     CF set on error
  6221.         AX = error code (see INT 80/BL=00h)
  6222. SeeAlso: BX=0401h"SBSIM"
  6223.  
  6224. Values for sound source:
  6225.  00h    master volume
  6226.  01h    voice
  6227.  02h    FM
  6228.  03h    CD
  6229.  04h    line in
  6230.  05h    microphone
  6231. --------s-80----BX0401-----------------------
  6232. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  6233.     BX = 0401h
  6234.     AX = sound source (see INT 80/BX=0400h)
  6235.     DX = new volume
  6236. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  6237. SeeAlso: BX=0400h"SBSIM"
  6238. --------N-8001-------------------------------
  6239. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  6240.     AH = 01h
  6241. Return: AX = 0000h
  6242.     CX = FFFFh
  6243.     DX = FFFFh
  6244. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  6245.     all buffer pointers are reset back to 0
  6246. --------N-8002-------------------------------
  6247. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  6248.     AH = 02h
  6249.     BX = extra bytes to allocate per packet
  6250. Return: AX = segment address of 10K buffer (for receives???)
  6251.     BX = segment address of 2K buffer (for sends???)
  6252. SeeAlso: AH=05h
  6253. --------N-8003-------------------------------
  6254. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  6255.     AH = 03h
  6256. Return: CX:DX -> receive call address
  6257. Note:    the returned address can be used in the packet driver calls since it
  6258.       will be a valid address in all DOS boxes
  6259. SeeAlso: AH=06h
  6260. --------N-8004-------------------------------
  6261. INT 80 - QPC Software PKTINT.COM - ENABLE???
  6262.     AH = 04h
  6263.     BX = ???
  6264. Return: ???
  6265. SeeAlso: AH=01h
  6266. --------N-8005-------------------------------
  6267. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  6268.     AH = 05h
  6269. Return: AX = amount of buffer currently in use
  6270.     BX = current offset in buffer
  6271.     CX = number of times receive has been called
  6272. SeeAlso: AH=02h
  6273. --------N-8006-------------------------------
  6274. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  6275.     AH = 06h
  6276. Return: BX = next packet offset
  6277.     CX = number of bytes still buffered
  6278.     DX = size of packet released back into buffer pool
  6279. SeeAlso: AH=03h
  6280. --------r-81---------------------------------
  6281. INT 81 - reserved for BASIC
  6282. Note:    this vector is modified but not restored by Direct Access v4.0, and
  6283.       may be left dangling by other programs written with the same version
  6284.       of compiled BASIC
  6285. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  6286. --------N-81---------------------------------
  6287. INT 81 - IBM TOKEN RING ADAPTER - ???
  6288. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  6289. --------r-82---------------------------------
  6290. INT 82 - reserved for BASIC
  6291. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  6292. --------N-82---------------------------------
  6293. INT 82 - IBM TOKEN RING ADAPTER - ???
  6294.     AH = function
  6295.         00h display message???
  6296.         DS:BX -> string
  6297.     ???
  6298. Return: ???
  6299. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6300. --------r-83---------------------------------
  6301. INT 83 - reserved for BASIC
  6302. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  6303. --------r-84---------------------------------
  6304. INT 84 - reserved for BASIC
  6305. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  6306. --------r-85---------------------------------
  6307. INT 85 - reserved for BASIC
  6308. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  6309.       v4.0, and may be left dangling by other programs written with the
  6310.       same version of compiled BASIC
  6311. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  6312. --------N-86---------------------------------
  6313. INT 86 - NetBIOS - ORIGINAL INT 18
  6314. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  6315. SeeAlso: INT 18
  6316. --------r-86---------------------------------
  6317. INT 86 - IBM ROM BASIC - used while in interpreter
  6318. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6319.     BASIC.COM/BASICA.COM do not restore vector on termination
  6320. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  6321. --------r-86---------------------------------
  6322. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  6323. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  6324. --------r-87---------------------------------
  6325. INT 87 - IBM ROM BASIC - used while in interpreter
  6326. Notes:    called by ROM BASIC
  6327.     BASIC.COM/BASICA.COM do not restore vector on termination
  6328. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  6329. --------r-87---------------------------------
  6330. INT 87 - APL*PLUS/PC - ???
  6331. SeeAlso: INT 86"APL",INT 88/AL=00h
  6332. --------v-87---------------------------------
  6333. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  6334. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  6335.       following
  6336. SeeAlso: INT 8B"VIRUS"
  6337. --------r-88---------------------------------
  6338. INT 88 - IBM ROM BASIC - used while in interpreter
  6339. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6340.     BASIC.COM/BASICA.COM do not restore vector on termination
  6341. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  6342. --------r-88--00-----------------------------
  6343. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  6344.     AL = 00h
  6345.     BX = STPTR of the variable to be assigned
  6346.     ES:SI -> model of type, rank, and shape (see below)
  6347. Return: ES:DI -> first data byte of object
  6348.     DX:CX = number of elements in the object
  6349. SeeAlso: INT C8"APL"
  6350.  
  6351. Format of shape model:
  6352. Offset    Size    Description
  6353.  00h    BYTE    type
  6354.         01h character (2-byte dimension sizes)
  6355.         02h integer (2-byte dimension sizes)
  6356.         08h floating point (2-byte dimension sizes)
  6357.         11h character (4-byte dimension sizes)
  6358.         12h integer (4-byte dimension sizes)
  6359.         18h floating point (4-byte dimension sizes)
  6360.  01h    BYTE    rank
  6361.  02h    WORD/DWORD first dimension of shape
  6362.  N    WORD/DWORD second dimension of shape
  6363.     ...
  6364. --------r-88--01-----------------------------
  6365. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6366.     AL = 01h
  6367.     AH = rank
  6368.     BX = STPTR of the variable to be assigned
  6369.     CX = first dimension (if any)
  6370.     DX = second dimension (if any)
  6371. Return: ES:DI -> object
  6372.     CX = number of elements in the object
  6373. Note:    each dimension must be 32767 or smaller
  6374. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  6375. --------r-88--02-----------------------------
  6376. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6377.     AL = 02h
  6378.     AH = rank
  6379.     BX = STPTR of the variable to be assigned
  6380.     CX = first dimension (if any)
  6381.     DX = second dimension (if any)
  6382. Return: ES:DI -> object
  6383.     CX = number of elements in the object
  6384. Note:    each dimension must be 32767 or smaller
  6385. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  6386. --------r-88--08-----------------------------
  6387. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  6388.     AL = 08h
  6389.     AH = rank
  6390.     BX = STPTR of the variable to be assigned
  6391.     CX = first dimension (if any)
  6392.     DX = second dimension (if any)
  6393. Return: ES:DI -> object
  6394.     CX = number of elements in the object
  6395. Note:    each dimension must be 32767 or smaller
  6396. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  6397. --------r-88--F5-----------------------------
  6398. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  6399.     AL = F5h
  6400.     BX = STPTR of object
  6401. SeeAlso: INT C8"APL"
  6402. --------r-88--F6-----------------------------
  6403. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  6404.     AL = F6h
  6405.     BX = STPTR of object
  6406. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  6407. --------r-88--F7-----------------------------
  6408. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  6409.     AL = F7h
  6410.     BX = STPTR of object
  6411. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  6412. --------r-88--F8-----------------------------
  6413. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  6414.     AL = F8h
  6415.     BX = STPTR of object
  6416. Return: BX = name's status
  6417.         0000h eligible
  6418.         0001h not eligible
  6419. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  6420. --------r-88--F9-----------------------------
  6421. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6422.     AL = F9h
  6423.     ES:SI -> name
  6424.     CX = length of name
  6425. Return: CF set if name ill-formed or already in use
  6426.         BX = STPTR if already in symbol table
  6427.     CF clear if name is available for use
  6428.         BX = 0000h
  6429. Note:    does not force the name into the workspace
  6430. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  6431. --------r-88--FC-----------------------------
  6432. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  6433.     AL = FCh
  6434.     BX = amount of memory needed (paragraphs)
  6435. Return: CF clear if memory available
  6436.     CF set if a workspace compaction is required
  6437. SeeAlso: AL=FDh,INT C8"APL"
  6438. --------r-88--FD-----------------------------
  6439. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  6440.     AL = FDh
  6441. Return: BX = number of paragraphs available in workspace
  6442. SeeAlso: AL=FCh,INT C8"APL"
  6443. --------r-88--FE-----------------------------
  6444. INT 88 - APL*PLUS/PC - CREATE NAME
  6445.     AL = FEh
  6446.     ES:SI -> name
  6447.     CX = length of name
  6448. Return: BX = STPTR of name
  6449.     DX = interpreter's data segment
  6450. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  6451. --------r-88--FF-----------------------------
  6452. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6453.     AL = FFh
  6454.     ES:SI -> name
  6455.     CX = length of name
  6456. Return: CF set if name ill-formed or already in use
  6457.         BX = STPTR if already in symbol table
  6458.     CF clear if name is available for use
  6459.         BX = 0000h
  6460. Note:    forces the name into the workspace and makes it immune from outswapping
  6461. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  6462. --------r-89---------------------------------
  6463. INT 89 - IBM ROM BASIC - used while in interpreter
  6464. Notes:    called by ROM BASIC
  6465.     BASIC.COM/BASICA.COM do not restore vector on termination
  6466. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  6467. --------r-8A---------------------------------
  6468. INT 8A - IBM ROM BASIC - used while in interpreter
  6469. Notes:    called by ROM BASIC
  6470.     BASIC.COM/BASICA.COM do not restore vector on termination
  6471. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  6472. --------r-8A---------------------------------
  6473. INT 8A - APL*PLUS/PC - PRINT SCREEN
  6474. Note:    same as INT 05
  6475. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  6476. --------r-8B---------------------------------
  6477. INT 8B - IBM ROM BASIC - used while in interpreter
  6478. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6479.     BASIC.COM/BASICA.COM do not restore vector on termination
  6480. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  6481. --------r-8B---------------------------------
  6482. INT 8B - APL*PLUS/PC - BEEP
  6483. Note:    same as printing a ^G via INT 21/AH=02h
  6484. SeeAlso: INT 21/AH=02h,INT CB"APL"
  6485. --------v-8B---------------------------------
  6486. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  6487. Note:    if the ZeroHunt virus is resident, this vector will contain either
  6488.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  6489. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  6490. --------r-8C---------------------------------
  6491. INT 8C - IBM ROM BASIC - used while in interpreter
  6492. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6493.     BASIC.COM/BASICA.COM do not restore vector on termination
  6494. --------r-8C---------------------------------
  6495. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  6496.     AX = flag
  6497.         0000h do not save display attributes
  6498.         0001h save attributes
  6499. SeeAlso: INT CC"APL"
  6500. --------r-8D---------------------------------
  6501. INT 8D - IBM ROM BASIC - used while in interpreter
  6502. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6503.     BASIC.COM/BASICA.COM do not restore vector on termination
  6504. --------r-8E---------------------------------
  6505. INT 8E - IBM ROM BASIC - used while in interpreter
  6506. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6507.     BASIC.COM/BASICA.COM do not restore vector on termination
  6508. --------r-8F---------------------------------
  6509. INT 8F - IBM ROM BASIC - used while in interpreter
  6510. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6511.     BASIC.COM/BASICA.COM do not restore vector on termination
  6512. --------r-90---------------------------------
  6513. INT 90 - IBM ROM BASIC - used while in interpreter
  6514. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6515.     BASIC.COM/BASICA.COM do not restore vector on termination
  6516. --------r-90---------------------------------
  6517. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  6518. --------r-91---------------------------------
  6519. INT 91 - IBM ROM BASIC - used while in interpreter
  6520. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6521.     BASIC.COM/BASICA.COM do not restore vector on termination
  6522. --------N-91---------------------------------
  6523. INT 91 - IBM TOKEN RING ADAPTER - ???
  6524. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  6525. --------r-92---------------------------------
  6526. INT 92 - IBM ROM BASIC - used while in interpreter
  6527. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6528.     BASIC.COM/BASICA.COM do not restore vector on termination
  6529. --------N-92---------------------------------
  6530. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  6531.     BX:DX -> control block
  6532. SeeAlso: INT 68"Sangoma"
  6533. --------e-92E1-------------------------------
  6534. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  6535.     AH = E1h
  6536.     AL = function
  6537.     BX = stack count (number of words to push)
  6538.     CX:DX -> stack data (in word-reversed order ready to push)
  6539. Return: AX = status (see below)
  6540. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  6541.  
  6542. Values for status:
  6543.  0001h    success
  6544.  FF97h    "ERS_NOT_AVAILABLE"
  6545.  FF99h    "ERS_TOO_MANY_NAMES"
  6546.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  6547.  FFE3h    "ERS_NAME_NOT_FOUND"
  6548.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  6549.  FFFFh    "ERS_NO_SUCH_FILE"
  6550. --------e-92E100-----------------------------
  6551. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  6552.     AX = E100h
  6553.     BX = size of parameter block in words (000Ah)
  6554.     CX:DX -> parameter block (see below)
  6555. Return: AX = 0001h success
  6556. Desc:    this function is used to initialize the dispatcher
  6557. SeeAlso: AX=E101h,AX=E103h
  6558.  
  6559. Format of parameter block:
  6560. Offset    Size    Description
  6561.  00h    WORD    segment of ???
  6562.  02h    WORD    offset of ???
  6563.  04h    WORD    high part of long ???
  6564.  06h    WORD    low part of long ???
  6565.  08h    WORD    high part of long ???
  6566.  0Ah    WORD    low part of long ???
  6567.  0Ch    WORD    high part of long ???
  6568.  0Eh    WORD    low part of long ???
  6569.  10h    WORD    high part of long ???
  6570.  12h    WORD    low part of long ???
  6571. --------e-92E101BX0000-----------------------
  6572. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  6573.     AX = E101h
  6574.     BX = 0000h
  6575.     CX:DX ignored
  6576. Return: AX = 0001h success
  6577. SeeAlso: AX=E100h,AX=E180h
  6578. --------e-92E102BX0000-----------------------
  6579. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  6580.     AX = E102h
  6581.     BX = 0000h
  6582.     CX:DX ignored
  6583. Return: AX = 0001h success
  6584. Desc:    this function is used to determine if the dispatcher is loaded
  6585. SeeAlso: AX=E10Bh,AX=E180h
  6586. --------e-92E103BX0000-----------------------
  6587. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  6588.     AX = E103h
  6589.     BX = 0000h
  6590.     CX:DX ignored
  6591. Return: AX = status (see AH=E1h)
  6592. SeeAlso: AX=E100h
  6593. --------e-92E104-----------------------------
  6594. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  6595.     AX = E104h
  6596.     BX = size of parameter block in words (0006h)
  6597.     CX:DX -> parameter block (see below)
  6598. Return: AX = status (see AH=E1h)
  6599. Desc:    this function is used to verify node address for usernames
  6600. SeeAlso: AX=E180h
  6601.  
  6602. Format of parameter block:
  6603. Offset    Size    Description
  6604.  00h    WORD    segment of node address buffer
  6605.  02h    WORD    offset of node address buffer
  6606.  04h    WORD    segment of uppercase username
  6607.  06h    WORD    offset of uppercase username
  6608.  08h    WORD    segment of "DVSEMAIL"
  6609.  0Ah    WORD    offset of "DVSEMAIL"
  6610. --------e-92E105-----------------------------
  6611. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  6612.     AX = E105h
  6613.     BX = size of parameter block in words (0007h)
  6614.     CX:DX -> parameter block (see below)
  6615. Return: AX = 0000h Error
  6616.     AX = handle
  6617. Desc:    this function is used to open a submission channel
  6618. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  6619.  
  6620. Format of parameter block:
  6621. Offset    Size    Description
  6622.  00h    WORD    operation (1 = read, 2 = write)
  6623.  02h    WORD    segment of uppercase To: username
  6624.  04h    WORD    offset of uppercase To: username
  6625.  06h    WORD    segment of "DVSEMAIL"
  6626.  08h    WORD    offset of "DVSEMAIL"
  6627.  0Ah    WORD    segment of node address
  6628.  0Ch    WORD    offset of node address
  6629. --------e-92E106BX0004-----------------------
  6630. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  6631.     AX = E106h
  6632.     BX = 0004h
  6633.     CX:DX -> parameter block
  6634. Return: AX = 0001h
  6635. SeeAlso: AX=E108h
  6636. --------e-92E107BX0002-----------------------
  6637. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  6638.     AX = E107h
  6639.     BX = 0002h
  6640.     CX:DX -> parameter block
  6641. Return: AX = 0001h
  6642. SeeAlso: AX=E109h,AX=E180h
  6643. --------e-92E108-----------------------------
  6644. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  6645.     AX = E108h
  6646.     BX = size of parameter block in words (0004h)
  6647.     CX:DX -> parameter block (see below)
  6648. Return: AX = amount written
  6649. Desc:    This function is used to write transactions to the dispatcher.
  6650.       The command block is written first and then another call is used
  6651.       to write the associated data.
  6652. SeeAlso: AX=E106h
  6653.  
  6654. Format of parameter block:
  6655. Offset    Size    Description
  6656.  00h    WORD    buffer count
  6657.  02h    WORD    segment of command buffer
  6658.  04h    WORD    offset of command buffer
  6659.  06h    WORD    handle from NetOpen
  6660.  
  6661. Format of command buffer:
  6662. Offset    Size    Description
  6663.  00h    BYTE    command
  6664.         21h '!' Protocol commands for remote control
  6665.         41h 'A' Authorization protocol element
  6666.         42h 'B' Return(back) routing information
  6667.             Associated data is the From: username
  6668.         43h 'C' Carbon Copy list
  6669.             Associated data is a comma delimitted list of usernames
  6670.         44h 'D' Distribution list
  6671.             Associated data is a comma delimitted list of usernames
  6672.         45h 'E' Mail end marker
  6673.             No associated data
  6674.         48h 'H' Mail message header
  6675.             Associated data is a message header buffer
  6676.         4Dh 'M' Mail message
  6677.             Associated data is the body of the message
  6678.         4Fh 'O' Object
  6679.         50h 'P' Paperclip attachment
  6680.         52h 'R' Routing information
  6681.             Associated data is the To: username
  6682.         53h 'S' Subject
  6683.             Associated data is the subject of the message
  6684.         54h 'T' Trail of Reply/Forwards
  6685.  01h    BYTE    subcommand
  6686.  02h    DWORD    length of associated data
  6687.  
  6688. Format of message header buffer:
  6689. Offset    Size    Description
  6690.  00h 30 BYTEs    subject line
  6691.  1Eh 24 BYTEs    To
  6692.  36h 24 BYTEs    From
  6693.  4Eh    DWORD    Time
  6694.         BYTE    00h
  6695.         BYTE    hour
  6696.         BYTE    minute
  6697.         BYTE    second
  6698.  52h    DWORD    Date
  6699.         BYTE    00h
  6700.         BYTE    year
  6701.         BYTE    month
  6702.         BYTE    day
  6703.  56h    DWORD    serial number (00000000h)
  6704.  5Ah    WORD    mail types (see below)
  6705.  5Ch    WORD    special types (0)
  6706.  
  6707. Bitfields for mail types:
  6708. Bit(s)    Description
  6709.  7    blind carbon copy
  6710.  6    carbon copy
  6711.  5    priority
  6712.  4    confidential
  6713.  3    certified
  6714.  2    bulk
  6715.  1-0    class (first, second, third, bulk)
  6716. --------e-92E109-----------------------------
  6717. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  6718.     AX = E109h
  6719.     BX = size of parameter block in words (0001h)
  6720.     CX:DX -> parameter block (see below)
  6721. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  6722. SeeAlso: AX=E107h,AX=E180h
  6723.  
  6724. Format of parameter block:
  6725. Offset    Size    Description
  6726.  00h    WORD    ???
  6727. --------e-92E10A-----------------------------
  6728. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  6729.     AX = E10Ah
  6730.     BX = size of parameter block in words (0001h)
  6731.     CX:DX -> parameter block (see below)
  6732. Return: AX = 0001h
  6733. Desc:    this function is used to close a dispatcher handle
  6734. SeeAlso: AX=E105h
  6735.  
  6736. Format of parameter block:
  6737. Offset    Size    Description
  6738.  00h    WORD    handle from NetOpen
  6739. --------e-92E10B-----------------------------
  6740. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  6741.     AX = E10Bh
  6742.     BX = size of parameter block in words (0004h)
  6743.     CX:DX -> parameter block (see below)
  6744. Return: AX = 0001h
  6745. SeeAlso: AX=E102h,AX=E10Ch
  6746.  
  6747. Format of parameter block:
  6748. Offset    Size    Description
  6749.  00h    WORD    segment of 24-byte username buffer
  6750.  02h    WORD    offset of 24-byte username buffer
  6751.  04h    WORD    segment of 24-byte protocol buffer
  6752.  06h    WORD    offset of 24-byte protocol buffer
  6753. --------e-92E10C-----------------------------
  6754. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  6755.     AX = E10Ch
  6756.     BX = size of parameter block in words (0002h)
  6757.     CX:DX -> parameter block (see below)
  6758. Return: AX = 0001h
  6759. SeeAlso: AX=E10Bh
  6760.  
  6761. Format of parameter block:
  6762. Offset    Size    Description
  6763.  00h    WORD    Segment of 128 byte node address buffer
  6764.  02h    WORD    Offset of 128 byte node address buffer
  6765. --------e-92E10D-----------------------------
  6766. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  6767.     AX = E10Dh
  6768.     BX = size of parameter block in words (0006h)
  6769.     CX:DX -> parameter block (see below)
  6770. Return: AX = status (see AH=E1h)
  6771. Desc:    this function is used to verify username/password
  6772. SeeAlso: AX=E10Eh
  6773.  
  6774. Format of parameter block:
  6775. Offset    Size    Description
  6776.  00h    WORD    segment of uppercase password string
  6777.  02h    WORD    offset of uppercase password string
  6778.  04h    WORD    segment of uppercase username string
  6779.  06h    WORD    offset of uppercase username string
  6780.  08h    WORD    segment of "DVSEMAIL"
  6781.  0Ah    WORD    offset of "DVSEMAIL"
  6782. --------e-92E10E-----------------------------
  6783. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  6784.     AX = E10Eh
  6785.     BX = size of parameter block in words (0004h)
  6786.     CX:DX -> parameter block (see below)
  6787. Return: AX = 0001h
  6788. Desc:    this function is used to remove a username
  6789. SeeAlso: AX=E10Dh
  6790.  
  6791. Format of parameter block:
  6792. Offset    Type    Description
  6793.  00h    WORD    segment of uppercase username
  6794.  02h    WORD    offset of uppercase username
  6795.  04h    WORD    segment of "DVSEMAIL"
  6796.  06h    WORD    offset of "DVSEMAIL"
  6797. --------e-92E10FBX0000-----------------------
  6798. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  6799.     AX = E10Fh
  6800.     BX = 0000h
  6801.     CX:DX ignored
  6802. Return: AX = 0001h
  6803. SeeAlso: AX=E180h
  6804. --------e-92E110-----------------------------
  6805. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  6806.     AX = E110h
  6807.     BX = size of parameter block in words (0006h)
  6808.     CX:DX -> parameter block (see below)
  6809. Return: AX = 0001h
  6810. SeeAlso: AX=E111h,AX=E113h
  6811.  
  6812. Format of parameter block:
  6813. Offset    Size    Description
  6814.  00h  6 WORDs    ???
  6815. --------e-92E111-----------------------------
  6816. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  6817.     AX = E111h
  6818.     BX = size of parameter block in words (0004h)
  6819.     CX:DX -> parameter block (see below)
  6820. Return: AX = 0001h
  6821. SeeAlso: AX=E110h,AX=E113h
  6822.  
  6823. Format of parameter block:
  6824. Offset    Size    Description
  6825.  00h  4 WORDs    ???
  6826. --------e-92E112-----------------------------
  6827. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  6828.     AX = E112h
  6829.     BX = size of parameter block in words (0008h)
  6830.     CX:DX -> parameter block (see below)
  6831. Return: AX = 0001h
  6832. SeeAlso: AX=E180h
  6833.  
  6834. Format of parameter block:
  6835. Offset    Size    Description
  6836.  00h  8 WORDs    ???
  6837. --------e-92E113-----------------------------
  6838. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  6839.     AX = E113h
  6840.     BX = size of parameter block in words (0008h)
  6841.     CX:DX -> parameter block (see below)
  6842. Return: AX = 0001h
  6843. SeeAlso: AX=E110h,AX=E111h
  6844.  
  6845. Format of parameter block:
  6846. Offset    Size    Description
  6847.  00h  8 WORDs    ???
  6848. --------e-92E175-----------------------------
  6849. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  6850.     AX = E175h
  6851. Return: AX = 0012h
  6852.     BX = PSP
  6853. SeeAlso: AX=E180h
  6854. --------e-92E180-----------------------------
  6855. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  6856.     AX = E180h
  6857. Return: AX = 0012h if installed
  6858.     ES:DX -> '$'-terminated driver information string
  6859. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  6860. --------r-93---------------------------------
  6861. INT 93 - IBM ROM BASIC - used while in interpreter
  6862. Notes:    called by ROM BASIC
  6863.     BASIC.COM/BASICA.COM do not restore vector on termination
  6864. --------N-93---------------------------------
  6865. INT 93 - IBM TOKEN RING ADAPTER - ???
  6866. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6867. --------r-94---------------------------------
  6868. INT 94 - IBM ROM BASIC - used while in interpreter
  6869. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6870.     BASIC.COM/BASICA.COM do not restore vector on termination
  6871. --------s-94----SI0000-----------------------
  6872. INT 94 u - PCM driver - INITIALIZE SOUND
  6873.     SI = 0000h
  6874.     ES:BX -> parameters
  6875. Return: ???
  6876. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  6877.       sound boards
  6878. Note:    the installation check consists of testing for the signature string
  6879.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  6880.       preceding the signature gives the PCM driver's version
  6881. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  6882. Index:    installation check;PCM driver|PCM.COM;installation check
  6883. Index:    PCM driver;installation check
  6884. --------s-94----SI0001-----------------------
  6885. INT 94 u - PCM driver - INITIALIZE PCM
  6886.     SI = 0001h
  6887.     ES:BX -> parameters
  6888. Return: ???
  6889. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  6890. --------s-94----SI0002-----------------------
  6891. INT 94 u - PCM driver - INITIALIZE PCM INFO
  6892.     SI = 0002h
  6893.     ES:BX -> parameters (see below)
  6894. Return: ???
  6895. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  6896.  
  6897. Format of parameters:
  6898. Offset    Size    Description
  6899.  00h    DWORD    rate
  6900.  04h    WORD    channel number
  6901.  06h    WORD    "comp"
  6902.  08h    WORD    "dsize"
  6903. --------s-94----SI0003-----------------------
  6904. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  6905.     SI = 0003h
  6906.     ES:BX -> parameters (see below)
  6907. Return: ???
  6908. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  6909.  
  6910. Format of parameters:
  6911. Offset    Size    Description
  6912.  00h    DWORD    -> DMA buffer
  6913.  04h    WORD    size of DMA buffer
  6914.  06h    WORD    number of divisions
  6915. --------s-94----SI0004-----------------------
  6916. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  6917.     SI = 0004h
  6918.     ES:BX -> parameters (see below)
  6919. Return: ???
  6920. SeeAlso: SI=0000h,SI=0001h
  6921.  
  6922. Format of parameters:
  6923. Offset    Size    Description
  6924.  00h    DWORD    -> user function
  6925. --------s-94----SI0005-----------------------
  6926. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  6927.     SI = 0005h
  6928. Return: ???
  6929. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  6930. --------s-94----SI0006-----------------------
  6931. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  6932.     SI = 0006h
  6933. Return: ???
  6934. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  6935. --------s-94----SI0007-----------------------
  6936. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  6937.     SI = 0007h
  6938. Return: ???
  6939. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  6940. --------s-94----SI0008-----------------------
  6941. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  6942.     SI = 0008h
  6943. Return: ???
  6944. SeeAlso: SI=0007h
  6945. --------s-94----SI0009-----------------------
  6946. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  6947.     SI = 0009h
  6948. Return: ???
  6949. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  6950. --------s-94----SI000A-----------------------
  6951. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  6952.     SI = 000Ah
  6953. Return: ???
  6954. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  6955. Index:    uninstall;PCM driver
  6956. --------s-94----SI000B-----------------------
  6957. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  6958.     SI = 000Bh
  6959.     ES:BX -> parameters (see below)
  6960. Return: ???
  6961. SeeAlso: SI=0003h
  6962.  
  6963. Format of parameters:
  6964. Offset    Size    Description
  6965.  00h    DWORD    -> memory block to contain DMA buffer
  6966.  04h    WORD    desired size of DMA buffer
  6967. --------s-94----SI000D-----------------------
  6968. INT 94 u - Media Vision PCM.COM - GET STATUS
  6969.     SI = 000Dh
  6970. Return: AX = status (0000h = waiting) (see below)
  6971.  
  6972. Bitfields for status:
  6973. Bit(s)    Description
  6974.  0    playing
  6975.  1    recording
  6976.  2    SBplaying
  6977.  3    SBrecording
  6978.  14    SBpaused
  6979.  15    paused
  6980. --------s-94----SI8000-----------------------
  6981. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  6982.     SI = 8000h
  6983. Return: DX:AX -> DMA buffer
  6984. Program: PCM.COM is a superset of the standard PCM driver which provides
  6985.       additional functions for fine control of the driver
  6986. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  6987.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  6988.       the INT 94 handler's segment
  6989. SeeAlso: SI=8001h,SI=8004h
  6990. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  6991. Index:    Media Vision PCM.COM;"shark" functions
  6992. --------s-94----SI8001-----------------------
  6993. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  6994.     SI = 8001h
  6995. Return: AX = DMA buffer size
  6996.     DX = divisions
  6997. SeeAlso: SI=8000h
  6998. --------s-94----SI8002-----------------------
  6999. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  7000.     SI = 8002h
  7001. Return: AX = status
  7002.         0000h if board not at specified I/O address
  7003.         other if board found
  7004. Note:    the I/O address is specified by ORing the base I/O port shifted left
  7005.       four bits into SI before calling INT 94
  7006. SeeAlso: SI=8000h
  7007. --------s-94----SI8004-----------------------
  7008. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  7009.     SI = 8004h
  7010. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  7011.     DX = size of buffer in note structures
  7012. SeeAlso: SI=8000h
  7013. --------s-94----SI8005-----------------------
  7014. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  7015.     SI = 8005h
  7016. Return: ???
  7017. --------s-94----SI8011-----------------------
  7018. INT 94 u - Media Vision PCM.COM - INITIALIZE
  7019.     SI = 8011h
  7020.     ES:BX -> "iobf91" structure
  7021. Return: ???
  7022. --------s-94----SI8012-----------------------
  7023. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  7024.     SI = 8012h
  7025.     ES:BX -> "i94f92buf" structure
  7026. Return: ???
  7027. SeeAlso: SI=8013h,SI=8014h
  7028. --------s-94----SI8013-----------------------
  7029. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  7030.     SI = 8013h
  7031. Return: AX = number of sounds used
  7032.     DX = maximum handles
  7033. --------s-94----SI8014-----------------------
  7034. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  7035.     SI = 8014h
  7036.     ES:BX -> "i94f92buf" structure to be filled in
  7037.         sound number field set to desired sound
  7038. Return: AX = status
  7039.         0000h successful
  7040.         FFFFh sound number out of range
  7041. SeeAlso: SI=8012h,SI=8013h
  7042. --------s-94----SI8015-----------------------
  7043. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  7044.     SI = 8015h
  7045.     ES:BX -> DMA info structure (see below)
  7046. Return: ???
  7047.  
  7048. Format of DMA info structure:
  7049. Offset    Size    Description
  7050.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  7051.  04h    WORD    DMA buffer size
  7052.  06h    WORD    divisions
  7053. --------s-94----SI8016-----------------------
  7054. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  7055.     SI = 8016h
  7056.     AX = hotkey number (01h-08h)
  7057. Return: ???
  7058. SeeAlso: AL=02h/SI=8017h
  7059. --------s-94--01SI8017-----------------------
  7060. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  7061.     AL = 01h
  7062.     SI = 8017h
  7063.     AH = new state (00h off, 01h on)
  7064. Return: ???
  7065. SeeAlso: AL=02h/SI=8017h
  7066. --------s-94--02SI8017-----------------------
  7067. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  7068.     AL = 02h
  7069.     SI = 8017h
  7070.     AH = new state (00h off, 01h on)
  7071. Return: ???
  7072. --------s-94--04SI8017-----------------------
  7073. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  7074.     AL = 04h
  7075.     SI = 8017h
  7076.     AH = new state
  7077.         00h off
  7078.         01h on
  7079.         CX = minimum delay
  7080.         DX = maximum delay
  7081. Return: ???
  7082. --------s-94--08SI8017-----------------------
  7083. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  7084.     AL = 08h
  7085.     SI = 8017h
  7086.     AH = new state
  7087.         00h off
  7088.         01h on
  7089.         DX:CX = delay
  7090. Return: ???
  7091. SeeAlso: AL=10h/SI=8017h
  7092. --------s-94--10SI8017-----------------------
  7093. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  7094.     AL = 10h
  7095.     SI = 8017h
  7096.     AH bit 7: set timer
  7097.     AH bit 6: timer active (timer turned off if clear)
  7098.     AH bits 5-0: timer number
  7099.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  7100. Return: ???
  7101. SeeAlso: AL=08h/SI=8017h
  7102. --------s-94----SI8018-----------------------
  7103. INT 94 u - Media Vision PCM.COM - GET INFO
  7104.     SI = 8018h
  7105.     AL = what to get
  7106.         00h "F92state"
  7107.         01h "F92bkgd"
  7108.         02h "I10timer"
  7109.         03h "I08state"
  7110. Return: DX:AX -> desired information
  7111. --------r-95---------------------------------
  7112. INT 95 - IBM ROM BASIC - used while in interpreter
  7113. Notes:    called by ROM BASIC
  7114.     BASIC.COM/BASICA.COM do not restore vector on termination
  7115. --------r-95---------------------------------
  7116. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  7117. Note:    use only when the R= option is invoked on entering APL
  7118. --------r-96---------------------------------
  7119. INT 96 - IBM ROM BASIC - used while in interpreter
  7120. Notes:    called by ROM BASIC
  7121.     BASIC.COM/BASICA.COM do not restore vector on termination
  7122. --------r-97---------------------------------
  7123. INT 97 - IBM ROM BASIC - used while in interpreter
  7124. Notes:    called by ROM BASIC
  7125.     BASIC.COM/BASICA.COM do not restore vector on termination
  7126. --------r-98---------------------------------
  7127. INT 98 - IBM ROM BASIC - used while in interpreter
  7128. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7129.     BASIC.COM/BASICA.COM do not restore vector on termination
  7130. --------r-99---------------------------------
  7131. INT 99 - IBM ROM BASIC - used while in interpreter
  7132. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7133.     BASIC.COM/BASICA.COM do not restore vector on termination
  7134. --------r-9A---------------------------------
  7135. INT 9A - IBM ROM BASIC - used while in interpreter
  7136. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7137.     BASIC.COM/BASICA.COM do not restore vector on termination
  7138. --------r-9B---------------------------------
  7139. INT 9B - IBM ROM BASIC - used while in interpreter
  7140. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7141.     BASIC.COM/BASICA.COM do not restore vector on termination
  7142. --------r-9C---------------------------------
  7143. INT 9C - IBM ROM BASIC - used while in interpreter
  7144. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7145.     BASIC.COM/BASICA.COM do not restore vector on termination
  7146. --------v-9C---------------------------------
  7147. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  7148. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7149. --------r-9D---------------------------------
  7150. INT 9D - IBM ROM BASIC - used while in interpreter
  7151. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7152.     BASIC.COM/BASICA.COM do not restore vector on termination
  7153. --------v-9D---------------------------------
  7154. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  7155. Note:    this vector is used by the virus to store the result of a call to
  7156.       INT 2F/AH=13h
  7157. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7158. --------r-9E---------------------------------
  7159. INT 9E - IBM ROM BASIC - used while in interpreter
  7160. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7161.     BASIC.COM/BASICA.COM do not restore vector on termination
  7162. --------v-9E---------------------------------
  7163. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  7164. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  7165. --------r-9F---------------------------------
  7166. INT 9F - IBM ROM BASIC - used while in interpreter
  7167. Notes:    called by ROM BASIC
  7168.     BASIC.COM/BASICA.COM do not restore vector on termination
  7169. --------v-9F---------------------------------
  7170. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  7171. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  7172.       this interrupt to store the existing INT 13 vector for later
  7173.       restoration
  7174. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  7175. --------r-A0---------------------------------
  7176. INT A0 - IBM ROM BASIC - used while in interpreter
  7177. Notes:    called by ROM BASIC
  7178.     BASIC.COM/BASICA.COM do not restore vector on termination
  7179. --------r-A0---------------------------------
  7180. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  7181. SeeAlso: INT 59
  7182. --------r-A1---------------------------------
  7183. INT A1 - IBM ROM BASIC - used while in interpreter
  7184. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7185.     BASIC.COM/BASICA.COM do not restore vector on termination
  7186. --------r-A2---------------------------------
  7187. INT A2 - IBM ROM BASIC - used while in interpreter
  7188. Notes:    called by ROM BASIC
  7189.     BASIC.COM/BASICA.COM do not restore vector on termination
  7190. --------r-A3---------------------------------
  7191. INT A3 - IBM ROM BASIC - used while in interpreter
  7192. Notes:    called by ROM BASIC
  7193.     BASIC.COM/BASICA.COM do not restore vector on termination
  7194. --------r-A4---------------------------------
  7195. INT A4 - IBM ROM BASIC - used while in interpreter
  7196. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7197.     BASIC.COM/BASICA.COM do not restore vector on termination
  7198. --------U-A4---------------------------------
  7199. INT A4 U - Right Hand Man - API
  7200.     AH = function number (v3.3 supports functions 00h-52h)
  7201. Return: CF set on error
  7202.     CF clear if successful
  7203. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  7204.       which has evolved into Futurus Team
  7205. Note:    this interrupt is only hooked while popped up
  7206. SeeAlso: INT 2F/AX=A4E0h
  7207. --------r-A5---------------------------------
  7208. INT A5 - IBM ROM BASIC - used while in interpreter
  7209. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7210.     BASIC.COM/BASICA.COM do not restore vector on termination
  7211. --------r-A6---------------------------------
  7212. INT A6 - IBM ROM BASIC - used while in interpreter
  7213. Notes:    called by ROM BASIC
  7214.     BASIC.COM/BASICA.COM do not restore vector on termination
  7215. --------r-A7---------------------------------
  7216. INT A7 - IBM ROM BASIC - used while in interpreter
  7217. Notes:    called by ROM BASIC
  7218.     BASIC.COM/BASICA.COM do not restore vector on termination
  7219. --------r-A8---------------------------------
  7220. INT A8 - IBM ROM BASIC - used while in interpreter
  7221. Notes:    called by ROM BASIC
  7222.     BASIC.COM/BASICA.COM do not restore vector on termination
  7223. --------r-A9---------------------------------
  7224. INT A9 - IBM ROM BASIC - used while in interpreter
  7225. Notes:    called by ROM BASIC
  7226.     BASIC.COM/BASICA.COM do not restore vector on termination
  7227. --------r-AA---------------------------------
  7228. INT AA - IBM ROM BASIC - used while in interpreter
  7229. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7230.     BASIC.COM/BASICA.COM do not restore vector on termination
  7231. --------r-AB---------------------------------
  7232. INT AB - IBM ROM BASIC - used while in interpreter
  7233. Notes:    called by ROM BASIC
  7234.     BASIC.COM/BASICA.COM do not restore vector on termination
  7235. --------r-AC---------------------------------
  7236. INT AC - IBM ROM BASIC - used while in interpreter
  7237. Notes:    called by ROM BASIC
  7238.     BASIC.COM/BASICA.COM do not restore vector on termination
  7239. --------r-AD---------------------------------
  7240. INT AD - IBM ROM BASIC - used while in interpreter
  7241. Notes:    called by ROM BASIC
  7242.     BASIC.COM/BASICA.COM do not restore vector on termination
  7243. --------r-AE---------------------------------
  7244. INT AE - IBM ROM BASIC - used while in interpreter
  7245. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7246.     BASIC.COM/BASICA.COM do not restore vector on termination
  7247. --------r-AF---------------------------------
  7248. INT AF - IBM ROM BASIC - used while in interpreter
  7249. Notes:    called by ROM BASIC
  7250.     BASIC.COM/BASICA.COM do not restore vector on termination
  7251. --------r-B0---------------------------------
  7252. INT B0 - IBM ROM BASIC - used while in interpreter
  7253. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7254.     BASIC.COM/BASICA.COM do not restore vector on termination
  7255. --------r-B1---------------------------------
  7256. INT B1 - IBM ROM BASIC - used while in interpreter
  7257. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7258.     BASIC.COM/BASICA.COM do not restore vector on termination
  7259. --------r-B2---------------------------------
  7260. INT B2 - IBM ROM BASIC - used while in interpreter
  7261. Notes:    called by ROM BASIC
  7262.     BASIC.COM/BASICA.COM do not restore vector on termination
  7263. --------r-B3---------------------------------
  7264. INT B3 - IBM ROM BASIC - used while in interpreter
  7265. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7266.     BASIC.COM/BASICA.COM do not restore vector on termination
  7267. --------U-B370-------------------------------
  7268. INT B3 - ZIPKEY - GET VERSION
  7269.     AH = 70h
  7270. Return: AH = major version
  7271.     AL = minor version
  7272.     CL = number of states and territories in current database
  7273.     DH = year of current database - 1900
  7274.     DL = month of current database's file date
  7275. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  7276. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  7277.       interrupt handler's segment, and the byte at 7Bh contains the API
  7278.       version number (00h for v1.x, 01h for v2.0)
  7279. --------U-B371-------------------------------
  7280. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  7281.     AH = 71h
  7282.     BX = abbreviation, in either case (first letter in BL)
  7283. Return: CF set on error
  7284.         AL = FFh
  7285.     CF clear if successful
  7286.         AL = ZIPKEY state code
  7287. SeeAlso: AH=72h
  7288. --------U-B372-------------------------------
  7289. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  7290.     AH = 72h
  7291.     BL = ZIPKEY state code
  7292. Return: CF set on error
  7293.         AX destroyed
  7294.     CF clear if successful
  7295.         AX = abbreviation, in upper case
  7296. SeeAlso: AH=71h,AH=73h
  7297. --------U-B373-------------------------------
  7298. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  7299.     AH = 73h
  7300.     BL = ZIPKEY state code
  7301.     ES:DI -> buffer for name
  7302. Return: CF set on error
  7303.         AX destroyed
  7304.     CF clear if successful
  7305.         ES:DI points one byte beyond end of name
  7306. SeeAlso: AH=72h
  7307. --------U-B374-------------------------------
  7308. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  7309.     AH = 74h
  7310.     DX = zipcode region (0-999)
  7311.     CH = last two digits of zipcode (0-99)
  7312.     ES:DI -> buffer
  7313. Return: CF set on error
  7314.         AX destroyed
  7315.     CF clear if successful
  7316.         ES:DI points one byte beyond end of digit string
  7317. --------U-B375-------------------------------
  7318. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  7319.     AH = 75h
  7320.     DX = zipcode region (0-999)
  7321.     CH = last two digits of zipcode (0-99)
  7322. Return: CF set on error (zipcode not found)
  7323.         AL = suggested state code, FFh if none
  7324.     CF clear if successful
  7325.         AL = ZIPKEY state code
  7326.         BX = area code (v2.0+)
  7327. SeeAlso: AH=76h,AH=79h
  7328. --------U-B376-------------------------------
  7329. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  7330.     AH = 76h
  7331.     DX = zipcode region (0-999)
  7332.     CH = last two digits of zipcode (0-99)
  7333.     ES:DI -> buffer for name
  7334. Return: CF set on error
  7335.         AL = suggested state code, FFh if none
  7336.         ES:DI buffer filled with suggested city name
  7337.     CF clear if successful
  7338.         AL = ZIPKEY state code
  7339.         BX = area code (v2.0+)
  7340.         ES:DI points one byte beyond end of name
  7341. SeeAlso: AH=75h,AH=78h,AH=7Eh
  7342. --------U-B377-------------------------------
  7343. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  7344.     AH = 77h
  7345.     DX = zipcode region (0-999)
  7346.     CH = last two digits of zipcode (0-99)
  7347.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  7348. Return: CF set on error
  7349.         AX destroyed
  7350.     CF clear if successful
  7351.         zipcode specification as defined by the BX keystroke is placed in
  7352.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  7353.           by pressing the key specified by BX
  7354. --------U-B378-------------------------------
  7355. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  7356.     AH = 78h
  7357.     BL = ZIPKEY state code
  7358.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7359. Return: BH = number of matching entries (set to 51 if more than 50)
  7360.     DX = zipcode region of first match (0-999)
  7361.     CL = last two digits of first zipcode in the range (0-99)
  7362.     CH = last two digits of last zipcode in the range (0-99)
  7363.     AX destroyed
  7364. SeeAlso: AH=79h,AH=7Ah
  7365. --------U-B379-------------------------------
  7366. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  7367.     AH = 79h
  7368.     BL = ZIPKEY state code of first state to search
  7369.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7370. Return: AL = ZIPKEY state code of first matching state
  7371.     BH = number of matching entries (set to 51 if more than 50)
  7372.     DX = zipcode region of first match (0-999)
  7373.     CL = last two digits of first zipcode in first range (0-99)
  7374.     CH = last two digits of last zipcode in first range (0-99)
  7375. Note:    to find all matching cities, repeat search with BL set to one more than
  7376.       the returned AL
  7377. SeeAlso: AH=78h,AH=7Ah
  7378. --------U-B37A-------------------------------
  7379. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  7380.     AH = 7Ah
  7381.     BL = case number (0 to one less than value returned in BH by lookup)
  7382. Return: AL = ZIPKEY state code
  7383.     DX = zipcode region (0-999)
  7384.     CL = last two digits of first zipcode in the range (0-99)
  7385.     CH = last two digits of last zipcode in the range (0-99)
  7386. SeeAlso: AH=78h,AH=79h
  7387. --------U-B37B-------------------------------
  7388. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  7389.     AH = 7Bh
  7390. Return: BL = maximum number of characters for a city name
  7391.     BH = ZIPKEY state code for last city-name search
  7392.         FFh if none
  7393.     CX:DX = internal code identifying last city search
  7394.     AX destroyed
  7395. SeeAlso: AH=7Ch
  7396. --------U-B37C-------------------------------
  7397. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  7398.     AH = 7Ch
  7399.     BL = maximum number of characters for a city name
  7400.     BH = ZIPKEY state code for last city-name search
  7401.         FFh if none
  7402.     CX:DX = internal code returned by AH=7Bh
  7403. Return: CF set on error
  7404.     CF clear if successful
  7405.     AX destroyed
  7406. SeeAlso: AH=7Bh
  7407. --------U-B37D-------------------------------
  7408. INT B3 - ZIPKEY - REQUEST POP UP
  7409.     AH = 7Dh
  7410.     BL = index number to simulate pressing a hotkey
  7411.         FFh for immediate popup with no playback on return
  7412. Return: CF set on error
  7413.         AL = FDh already busy with another request
  7414.            = FEh illegal function
  7415.     CF clear if successful
  7416.         AX destroyed
  7417.         window popped up and was closed by the user
  7418. SeeAlso: AH=70h
  7419. --------U-B37E-------------------------------
  7420. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  7421.     AH = 7Eh
  7422.     DX = zipcode region (0-999)
  7423.     ES:DI -> buffer for name
  7424. Return: CF set on error
  7425.         AL = FFh region does not exist
  7426.     CF clear if successful
  7427.         AL = ZIPKEY state code
  7428.         ES:DI points one byte beyond end of name
  7429. SeeAlso: AH=76h
  7430. --------U-B37F-------------------------------
  7431. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  7432.     AH = 7Fh
  7433.     BL = function
  7434.         00h turn off hotkeys
  7435.         01h turn on hotkeys
  7436.         02h return hotkey status
  7437.         03h toggle hotkey status
  7438. Return: AL = hotkey status
  7439.         00h off
  7440.         01h on
  7441. --------U-B380-------------------------------
  7442. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  7443.     AH = 80h
  7444.     BX = telephone area code (decimal)
  7445. Return: CF clear if successful
  7446.         AL = ZIPKEY state code
  7447.         DX = first ZIP region for state (03E8h if Canada)
  7448.         CX = number of ZIP regions in state
  7449.     CF set on error
  7450.         AL = FFh
  7451.         DX = 03E9h
  7452. --------r-B4---------------------------------
  7453. INT B4 - IBM ROM BASIC - used while in interpreter
  7454. Notes:    called by ROM BASIC
  7455.     BASIC.COM/BASICA.COM do not restore vector on termination
  7456. --------r-B4---------------------------------
  7457. INT B4 - StackMan - REQUEST NEW STACK
  7458. Return: SS:SP -> new stack
  7459. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  7460.       which functions as a replacement for the DOS STACK= command as well
  7461.       as permitting multiple TSRs to share a pool of stack space
  7462. Note:    the installation check consists of testing for the string "STACKXXX" at
  7463.       offset 0Ah from the interrupt handler
  7464. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  7465. Index:    installation check;STACKMAN
  7466. --------r-B5---------------------------------
  7467. INT B5 - IBM ROM BASIC - used while in interpreter
  7468. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7469.     BASIC.COM/BASICA.COM do not restore vector on termination
  7470. --------r-B5---------------------------------
  7471. INT B5 - StackMan - RESTORE ORIGINAL STACK
  7472.     SS:SP -> stack returned by INT B4
  7473. Return: SS:SP restored to value before INT B4
  7474. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  7475. --------m-B5---------------------------------
  7476. INT B5 U - Netroom NETSWAP4 - ???
  7477.     ???
  7478. Return: ???
  7479. SeeAlso: INT 31/AH=57h
  7480. --------r-B6---------------------------------
  7481. INT B6 - IBM ROM BASIC - used while in interpreter
  7482. Notes:    called by ROM BASIC
  7483.     BASIC.COM/BASICA.COM do not restore vector on termination
  7484. --------y-B6---------------------------------
  7485. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  7486. Program: TBFence is a security program by ESaSS B.V. which transparently
  7487.       encrypts floppies and optionally allows only encrypted diskettes to
  7488.       be accessed
  7489. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  7490.       TBFence INT 13h code, which starts with the signature word E487h;
  7491.       this forms the installation check
  7492.     the highest byte of this vector contains the start of a FAR JMP
  7493.       instruction to ???
  7494. SeeAlso: INT B7"TBFENCE"
  7495. Index:    installation check;TBFence
  7496. --------r-B7---------------------------------
  7497. INT B7 - IBM ROM BASIC - used while in interpreter
  7498. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7499.     BASIC.COM/BASICA.COM do not restore vector on termination
  7500. --------y-B7---------------------------------
  7501. INT B7 - TBFENCE - ???
  7502. SeeAlso: INT B6"TBFENCE"
  7503. --------r-B8---------------------------------
  7504. INT B8 - IBM ROM BASIC - used while in interpreter
  7505. Notes:    called by ROM BASIC
  7506.     BASIC.COM/BASICA.COM do not restore vector on termination
  7507. --------r-B9---------------------------------
  7508. INT B9 - IBM ROM BASIC - used while in interpreter
  7509. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7510.     BASIC.COM/BASICA.COM do not restore vector on termination
  7511. --------r-BA---------------------------------
  7512. INT BA - IBM ROM BASIC - used while in interpreter
  7513. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7514.     BASIC.COM/BASICA.COM do not restore vector on termination
  7515. --------r-BB---------------------------------
  7516. INT BB - IBM ROM BASIC - used while in interpreter
  7517. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7518.     BASIC.COM/BASICA.COM do not restore vector on termination
  7519. --------r-BC---------------------------------
  7520. INT BC - IBM ROM BASIC - used while in interpreter
  7521. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7522.     BASIC.COM/BASICA.COM do not restore vector on termination
  7523. --------r-BD---------------------------------
  7524. INT BD - IBM ROM BASIC - used while in interpreter
  7525. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7526.     BASIC.COM/BASICA.COM do not restore vector on termination
  7527. --------r-BE---------------------------------
  7528. INT BE - IBM ROM BASIC - used while in interpreter
  7529. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7530.     BASIC.COM/BASICA.COM do not restore vector on termination
  7531. --------Q-BE---------------------------------
  7532. INT BE - DESQview/X - ???
  7533. Note:    points at an IRET
  7534. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  7535. --------r-BF---------------------------------
  7536. INT BF - IBM ROM BASIC - used while in interpreter
  7537. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7538.     BASIC.COM/BASICA.COM do not restore vector on termination
  7539. --------r-C0---------------------------------
  7540. INT C0 - IBM ROM BASIC - used while in interpreter
  7541. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7542.     BASIC.COM/BASICA.COM do not restore vector on termination
  7543. --------r-C1---------------------------------
  7544. INT C1 - IBM ROM BASIC - used while in interpreter
  7545. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7546.     BASIC.COM/BASICA.COM do not restore vector on termination
  7547. --------r-C2---------------------------------
  7548. INT C2 - IBM ROM BASIC - used while in interpreter
  7549. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7550.     BASIC.COM/BASICA.COM do not restore vector on termination
  7551. --------r-C3---------------------------------
  7552. INT C3 - IBM ROM BASIC - used while in interpreter
  7553. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7554.     BASIC.COM/BASICA.COM do not restore vector on termination
  7555. --------r-C4---------------------------------
  7556. INT C4 - IBM ROM BASIC - used while in interpreter
  7557. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7558.     BASIC.COM/BASICA.COM do not restore vector on termination
  7559. --------r-C5---------------------------------
  7560. INT C5 - IBM ROM BASIC - used while in interpreter
  7561. Notes:    called by ROM BASIC
  7562.     BASIC.COM/BASICA.COM do not restore vector on termination
  7563. --------r-C6---------------------------------
  7564. INT C6 - IBM ROM BASIC - used while in interpreter
  7565. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7566.     BASIC.COM/BASICA.COM do not restore vector on termination
  7567. --------r-C6---------------------------------
  7568. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  7569. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7570.       the older interrupts
  7571. SeeAlso: INT 86"APL"
  7572. --------r-C7---------------------------------
  7573. INT C7 - IBM ROM BASIC - used while in interpreter
  7574. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7575.     BASIC.COM/BASICA.COM do not restore vector on termination
  7576. --------r-C7---------------------------------
  7577. INT C7 - APL*PLUS/PC - ???
  7578. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7579.       the older interrupts
  7580. SeeAlso: INT 87"APL"
  7581. --------r-C8---------------------------------
  7582. INT C8 - IBM ROM BASIC - used while in interpreter
  7583. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7584.     BASIC.COM/BASICA.COM do not restore vector on termination
  7585. --------r-C8---------------------------------
  7586. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  7587. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7588.       the older interrupts
  7589. SeeAlso: INT 88"APL"
  7590. --------r-C9---------------------------------
  7591. INT C9 - IBM ROM BASIC - used while in interpreter
  7592. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7593.     BASIC.COM/BASICA.COM do not restore vector on termination
  7594. --------r-C9---------------------------------
  7595. INT C9 - APL*PLUS/PC - ???
  7596. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7597.       the older interrupts
  7598. SeeAlso: INT 89"APL"
  7599. --------r-CA---------------------------------
  7600. INT CA - IBM ROM BASIC - used while in interpreter
  7601. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7602.     BASIC.COM/BASICA.COM do not restore vector on termination
  7603. --------r-CA---------------------------------
  7604. INT CA - APL*PLUS/PC - PRINT SCREEN
  7605. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7606.       the older interrupts
  7607. SeeAlso: INT 8A"APL"
  7608. --------r-CB---------------------------------
  7609. INT CB - IBM ROM BASIC - used while in interpreter
  7610. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7611.     BASIC.COM/BASICA.COM do not restore vector on termination
  7612. --------r-CB---------------------------------
  7613. INT CB - APL*PLUS/PC - BEEP
  7614. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7615.       the older interrupts
  7616.     same as printing a ^G via INT 21/AH=02h
  7617. SeeAlso: INT 8B"APL"
  7618. --------r-CC---------------------------------
  7619. INT CC - IBM ROM BASIC - used while in interpreter
  7620. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7621.     BASIC.COM/BASICA.COM do not restore vector on termination
  7622. --------r-CC---------------------------------
  7623. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  7624.     AX = flag
  7625.         0000h do not save display attributes
  7626.         0001h save attributes
  7627. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7628.       the older interrupts
  7629. SeeAlso: INT 8C"APL"
  7630. --------r-CD---------------------------------
  7631. INT CD - IBM ROM BASIC - used while in interpreter
  7632. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7633.     BASIC.COM/BASICA.COM do not restore vector on termination
  7634. --------r-CD---------------------------------
  7635. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7636. --------r-CE---------------------------------
  7637. INT CE - IBM ROM BASIC - used while in interpreter
  7638. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7639.     BASIC.COM/BASICA.COM do not restore vector on termination
  7640. --------r-CE---------------------------------
  7641. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7642. --------r-CF---------------------------------
  7643. INT CF - IBM ROM BASIC - used while in interpreter
  7644. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7645.     BASIC.COM/BASICA.COM do not restore vector on termination
  7646. --------r-CF---------------------------------
  7647. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  7648. SeeAlso: INT E0"APL"
  7649. --------r-D0---------------------------------
  7650. INT D0 - IBM ROM BASIC - used while in interpreter
  7651. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7652.     BASIC.COM/BASICA.COM do not restore vector on termination
  7653. --------r-D0---------------------------------
  7654. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7655. --------U-D0---------------------------------
  7656. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  7657. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  7658.       James" Blaszczak
  7659. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  7660. Index:    installation check;NJFRERAM
  7661. --------r-D1---------------------------------
  7662. INT D1 - IBM ROM BASIC - used while in interpreter
  7663. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7664.     BASIC.COM/BASICA.COM do not restore vector on termination
  7665. --------r-D1---------------------------------
  7666. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7667. --------r-D2---------------------------------
  7668. INT D2 - IBM ROM BASIC - used while in interpreter
  7669. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7670.     BASIC.COM/BASICA.COM do not restore vector on termination
  7671. --------r-D2---------------------------------
  7672. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7673. --------r-D3---------------------------------
  7674. INT D3 - IBM ROM BASIC - used while in interpreter
  7675. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7676.     BASIC.COM/BASICA.COM do not restore vector on termination
  7677. --------r-D3---------------------------------
  7678. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7679. --------r-D4---------------------------------
  7680. INT D4 - IBM ROM BASIC - used while in interpreter
  7681. Notes:    called by ROM BASIC
  7682.     BASIC.COM/BASICA.COM do not restore vector on termination
  7683. --------r-D4---------------------------------
  7684. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7685. --------O-D400-------------------------------
  7686. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  7687.     AH = 00h and 01h
  7688. Return: nothing
  7689. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  7690.       and enters an endless loop
  7691. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7692.       system by The Software Link, Inc.
  7693. --------O-D402-------------------------------
  7694. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  7695.     AH = 02h
  7696. Return: AX = 0000h
  7697.     ES:BX -> System Control Block in V86 mode (see below)
  7698.     ES:EBX -> System Control Block in native mode (see below)
  7699. Note:    superseded by AH=26h
  7700. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  7701.  
  7702. Format of System Control Block:
  7703. Offset    Size    Description
  7704.  00h    WORD    pointer to first TCB in chain
  7705.  02h 17 BYTEs    reserved
  7706.  13h    WORD    pointer to current task's TCB
  7707.  15h    WORD    pointer to TCB of visible (console) task
  7708. --------O-D403-------------------------------
  7709. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  7710.     AH = 03h
  7711.     AL = subfunction (00h get, 01h set)
  7712.     DS:(E)DX -> pathname
  7713.     ES:(E)BX -> 10-byte buffer for directory information (see below)
  7714. Return: CF clear if successful
  7715.         AL = permitted access level for file (00h-03h)
  7716.         ES:(E)BX -> modified buffer (AL=01h on entry)
  7717.     CF set on error
  7718.         AX = error code (see INT 21/AH=59h)
  7719. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  7720.     the file class cannot be changed for files because it affects the
  7721.       encryption method, but directories can have their classes changed
  7722.  
  7723. Format of directory information:
  7724. Offset    Size    Description
  7725.  00h    BYTE    reserved (0)
  7726.  01h    BYTE    file class ('A'-'Z' or 00h)
  7727.  02h    DWORD    user ID of file creator
  7728.  06h    WORD    file creation time (see INT 21/AX=5700h)
  7729.  08h    WORD    file creation date (see INT 21/AX=5700h)
  7730. --------O-D404-------------------------------
  7731. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  7732.     AH = 04h
  7733.     BX = task ID or FFFFh for calling task
  7734. Return: CF clear if successful
  7735.         ES = segment of Task Control Block (TCB) (see below)
  7736.     CF set on error
  7737.         AX = error code (see INT 21/AH=59h)
  7738. Note:    superseded by AH=27h
  7739. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  7740.  
  7741. Format of Task Control Block:
  7742. Offset    Size    Description
  7743.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7744.  01h    BYTE    header block ID, "T" = TCB
  7745.  02h    WORD    length of block in paragraphs
  7746.  04h    WORD    segment address of next header block (0000h if last)
  7747.  06h    WORD    segment address of previous header block (0000h if first)
  7748.  08h    WORD    pointer to next TCB
  7749.  0Ah    WORD    pointer to previous TCB
  7750.  0Ch    WORD    pointer to associated TCB (if applicable)
  7751.  0Eh    WORD    reserved
  7752. ---TCB---
  7753.  10h    WORD    TCB task ID
  7754.  12h    WORD    native context save area
  7755.  14h    WORD    start address of task
  7756.  16h    WORD    end address of task
  7757.  18h    BYTE    task priority
  7758.  19h    BYTE    task time slice
  7759.  1Ah    BYTE    "TCBWAIT" run status of task
  7760.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  7761.  1Ch    DWORD    address of polling routine
  7762.  20h    BYTE    error code from last function call
  7763.  21h 11 BYTEs    name of currently executing task
  7764.  2Ch  4 BYTEs    ???
  7765.  30h    BYTE    keyboard disabled if bit 1 set
  7766.  31h    BYTE    current shift state and toggles
  7767.  32h  2 BYTEs    ???
  7768.  34h    BYTE    current video mode
  7769.  35h    BYTE    current video page
  7770.  36h    BYTE    number of text columns per screen
  7771.  37h    BYTE    number of text rows per screen
  7772.  38h    WORD    length of video buffer
  7773.  3Ah    WORD    video page length
  7774.  3Ch    WORD    apge start address in video RAM
  7775.  3Eh  4 WORDs    current cursor positions for four screen pages
  7776.  46h  8 BYTEs    ???
  7777.  4Eh    WORD    current cursor type
  7778.  50h    BYTE    current palette setting
  7779.  51h    BYTE    original video mode
  7780.  52h    BYTE    start CRT row (00h or 01h)
  7781.  53h    BYTE    video RAM in task active
  7782.  54h    WORD    handle of video save area
  7783.  56h    WORD    page count of video save area
  7784.  58h    WORD    segment address of video save area
  7785.  5Ah    WORD    poitner to first Task File Block (see below)
  7786.  5Ch    WORD    pointer to first Current Directory Block (see below)
  7787.  5Eh    WORD    pointer to active Current Directory Block (see below)
  7788.  60h    BYTE    number of drives
  7789.  61h    BYTE    current drive (0=A:, etc.)
  7790.  62h    DWORD    disk transfer address
  7791.  66h  4 BYTEs    ???
  7792.  6Ah    BYTE    verify flag (nonzero = on)
  7793.  6Bh    BYTE    break flag (nonzero = on)
  7794.  6Ch    WORD    share/lock retry count
  7795.  6Eh    WORD    ticks between share/lock retries
  7796.  70h    BYTE    remote printer flags (see below)
  7797.  71h    BYTE    ETX/ACK delay count
  7798.  72h    WORD    spooler segment address
  7799.  74h  2 BYTEs    ???
  7800.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see below)
  7801.  79h  2 BYTEs    ???
  7802.  7Bh    DWORD    offset of username in TCB
  7803.  7Fh    BYTE    current output class
  7804.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  7805.  87h 122 BYTEs    ???
  7806. 101h    BYTE    TCB sleep downcounter value
  7807. 102h 20 BYTEs    ???
  7808. 116h    BYTE    last scan code
  7809.     ...
  7810. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  7811. 5D4h    WORD    offset of logical screen
  7812. 5D6h    WORD    segment of logical screen
  7813. 5D8h    WORD    cursor offset within page
  7814. 5DAh    BYTE    screen columns
  7815. 5DBh    WORD    async port number (0000h = none)
  7816. 5DDh    DWORD    physical baudrate
  7817. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  7818.     ...
  7819. 7A6h    DWORD    far pointer to unregister calling chain
  7820.  
  7821. Bitfields for remote printer flags:
  7822. Bit(s)    Description
  7823.  0    LPT1 to terminal
  7824.  1    LPT2 to terminal
  7825.  2    LPT3 to terminal
  7826.  3    escape to printer pending
  7827.  4    use XON/XOFF
  7828.  5    use ETX/ACK
  7829.  6    waiting for ACK or XON
  7830.  7    transparent printing on
  7831.  
  7832. Values for remote printer redirection:
  7833.  00h    not redirected
  7834.  01h    redirected to COM1
  7835.  ...
  7836.  18h    redirected to COM24
  7837.  51h    redirected to LPT1
  7838.  52h    redirected to LPT2
  7839.  53h    redirected to LPT3
  7840.  
  7841. Format of Task File Block:
  7842. Offset    Size    Description
  7843.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7844.  01h    BYTE    header block ID, "F" = task file block
  7845.  02h    WORD    length of block in paragraphs
  7846.  04h    WORD    segment address of next header block (0000h if last)
  7847.  06h    WORD    segment address of previous header block (0000h if first)
  7848.  08h    WORD    pointer to next TCB
  7849.  0Ah    WORD    pointer to previous TCB
  7850.  0Ch    WORD    pointer to associated TCB (if applicable)
  7851.  0Eh    WORD    reserved
  7852. ---TFB---
  7853.  10h    WORD    segment address of next TFB
  7854.  12h    WORD    segment address of previous TFB
  7855.  14h    WORD    segment address of TFB's Global File Block (see below)
  7856.  16h    WORD    segment address of owner's PSP
  7857.  18h    WORD    file handle
  7858.  1Ah  3 BYTEs    ???
  7859.  1Dh    DWORD    file position
  7860.  21h  4 BYTEs    ???
  7861.  25h    BYTE    IOCTL flags (see below)
  7862.  26h  2 BYTEs    ???
  7863.  
  7864. Bitfields for IOCTL flags:
  7865. Bit(s)    Description
  7866.  0    stdin
  7867.  1    stdout
  7868.  2    null device
  7869.  3    clock device
  7870.  4    reserved
  7871.  5    ASCII mode instead of binary
  7872.  6    EOF encountered on input
  7873.  7    device rather than file
  7874.  
  7875. Format of Global File Block:
  7876. Offset    Size    Description
  7877.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7878.  01h    BYTE    header block ID, "G" = global file block
  7879.  02h    WORD    length of block in paragraphs
  7880.  04h    WORD    segment address of next header block (0000h if last)
  7881.  06h    WORD    segment address of previous header block (0000h if first)
  7882.  08h    WORD    pointer to next TCB
  7883.  0Ah    WORD    pointer to previous TCB
  7884.  0Ch    WORD    pointer to associated TCB (if applicable)
  7885.  0Eh    WORD    reserved
  7886. ---GFB---
  7887.  10h 10 BYTEs    ???
  7888.  1Ah    WORD    file attribute
  7889.  1Ch    BYTE    ???
  7890.  1Dh    DWORD    address of device driver
  7891.  21h    WORD    first cluster
  7892.  23h    WORD    time of last modification
  7893.  25h    WORD    date of last modification
  7894.  27h    DWORD    size of file in bytes
  7895.  2Bh 11 BYTEs    ???
  7896.  36h 11 BYTEs    device name or FCB-format filename
  7897.  41h    WORD    segment address of TFB list
  7898.  43h    WORD    segment address of first RLB (see below) (0000h = none)
  7899.  45h    BYTE    flag: nonzero if GFB refers to character device
  7900.  46h    WORD    address of Block Device Block (see below)
  7901.  48h    WORD    sector of file's directory entry
  7902.  4Ah    WORD    high word of file's directory entry
  7903.  4Ch    WORD    ofsset of directory entry within sector
  7904.  
  7905. Format of Current Directory Block:
  7906. Offset    Size    Description
  7907.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7908.  01h    BYTE    header block ID, "C" = current directory block
  7909.  02h    WORD    length of block in paragraphs
  7910.  04h    WORD    segment address of next header block (0000h if last)
  7911.  06h    WORD    segment address of previous header block (0000h if first)
  7912.  08h    WORD    pointer to next TCB
  7913.  0Ah    WORD    pointer to previous TCB
  7914.  0Ch    WORD    pointer to associated TCB (if applicable)
  7915.  0Eh    WORD    reserved
  7916. ---CDB---
  7917.  10h    BYTE    drive number
  7918.  11h    BYTE    ???
  7919.  12h 64 BYTEs    directory name
  7920.  52h    WORD    first directory cluster (0000h = root)
  7921.  
  7922. Format of Block Device Block:
  7923. Offset    Size    Description
  7924.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7925.  01h    BYTE    header block ID, "B" = block device block
  7926.  02h    WORD    length of block in paragraphs
  7927.  04h    WORD    segment address of next header block (0000h if last)
  7928.  06h    WORD    segment address of previous header block (0000h if first)
  7929.  08h    WORD    pointer to next TCB
  7930.  0Ah    WORD    pointer to previous TCB
  7931.  0Ch    WORD    pointer to associated TCB (if applicable)
  7932.  0Eh    WORD    reserved
  7933. ---BDB---
  7934.  10h    BYTE    logical drive
  7935.  11h    BYTE    unit passed to driver
  7936.  12h    WORD    sector size
  7937.  14h    BYTE    cluster mask
  7938.  15h    BYTE    cluster shift count
  7939.  16h    WORD    starting sector of first FAT
  7940.  18h    BYTE    number of FATs
  7941.  19h    WORD    number of root directories
  7942.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  7943.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  7944.  1Fh    BYTE    number of sectors in FAT
  7945.  20h    WORD    beginning root directory sector number
  7946.  22h    DWORD    device driver address
  7947.  26h    BYTE    media descriptor byte
  7948.  27h  5 BYTEs    ???
  7949.  2Ch    BYTE    flag: volume > 32MB
  7950.  2Dh    BYTE    ???
  7951.  2Eh    BYTE    number of sectors per cluster
  7952.  2Fh    WORD    number of clusters on device
  7953.  31h    WORD    number of free clusters (FFFFh = unknown)
  7954.  33h    WORD    root directory cluster number
  7955.  35h    WORD    pointer to alias/subst string
  7956.  37h    WORD    TCB segment address of owner (0000h = none)
  7957.  
  7958.  
  7959. Format of Record Lock Block:
  7960. Offset    Size    Description
  7961.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7962.  01h    BYTE    header block ID, "R" = record lock block
  7963.  02h    WORD    length of block in paragraphs
  7964.  04h    WORD    segment address of next header block (0000h if last)
  7965.  06h    WORD    segment address of previous header block (0000h if first)
  7966.  08h    WORD    pointer to next TCB
  7967.  0Ah    WORD    pointer to previous TCB
  7968.  0Ch    WORD    pointer to associated TCB (if applicable)
  7969.  0Eh    WORD    reserved
  7970. ---RLB---
  7971.  10h    WORD    segment address of owner's PSP
  7972.  12h    WORD    segment address of Global File Block (see above)
  7973.  14h    WORD    segment address of owner's Task File Block (see above)
  7974.  16h    DWORD    file offset of locked region start
  7975.  1Ah    DWORD    length of locked region
  7976.  1Eh    WORD    owner's handle for file
  7977. --------O-D407-------------------------------
  7978. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  7979.     AH = 07h
  7980.     AL = events to monitor (see below)
  7981.     BX = number of timer ticks until timeout if AL bit 1 set
  7982.     CX = bitmap of IRQs to monitor if AL bit 2 set
  7983.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  7984.     DX = port to monitor if AL bit 3 set
  7985. Return: CF clear if successful
  7986.         AL = type of event which woke up task (see above)
  7987.         CX = IRQ (if any) which awakened task
  7988.         DX = port (if any) which awakened task
  7989.     CF set on error
  7990.         AX = error code (see INT 21/AH=59h)
  7991. Note:    a device driver may make this call with AL=00h, which indicates that
  7992.       the driver is responsible for setting and clearing the TCBWAIT field
  7993.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  7994.       reawaken it, set bit 1 (leaving other bits unchanged)
  7995. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  7996.  
  7997. Bitfields for events to monitor:
  7998. Bit(s)    Description
  7999.  0    keystroke
  8000.  1    timeout
  8001.  2    IRQ
  8002.  3    port access
  8003.  7    return status of user poll routine (other ignored if set)
  8004. --------O-D410-------------------------------
  8005. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  8006.     AH = 10h
  8007.     AL = direction (00h return to V86 mode, 01h enter native mode)
  8008.     CX = length in bytes of Native Context Area ( >=1024 )
  8009.     DX = segment of Native Context Area
  8010. Return: CF clear if successful
  8011.         running in desired mode at instruction following INT D4 call
  8012.         all segment registers converted to appropriate selectors/segments
  8013.     CF set on error
  8014.         AX = error code (see INT 21/AH=59h)
  8015. Note:    MS-DOS calls are available in protected mode
  8016. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  8017. --------O-D411-------------------------------
  8018. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  8019.     AH = 11h
  8020.     EBX = block length in bytes
  8021. Return: CF clear if successful
  8022.         EBX = number of bytes actually allocated
  8023.         ES = selector for allocated block
  8024.     CF set on error
  8025.         AX = error code (see INT 21/AH=59h)
  8026. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8027.       system by The Software Link, Inc.
  8028. Note:    memory must be released before program terminates
  8029. SeeAlso: AH=10h,AH=12h,INT 38
  8030. --------O-D412-------------------------------
  8031. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  8032.     AH = 12h
  8033.     ES = selector for block to free
  8034. Return: CF clear if successful
  8035.     CF set on error
  8036.         AX = error code (see INT 21/AH=59h)
  8037. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  8038. --------O-D413-------------------------------
  8039. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  8040.     AH = 13h
  8041.     AL = type of alias selector (00h data, 01h stack, 02h code)
  8042.     BX = selector
  8043. Return: CF clear if successful
  8044.         AX = new selector or 0000h if BX selector not found
  8045.     CF set on error
  8046.         AX = error code (see INT 21/AH=59h)
  8047. SeeAlso: AH=11h,AH=12h
  8048. --------O-D416-------------------------------
  8049. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  8050.     AH = 16h
  8051.     AL = function (00h clear, 01h set reservation)
  8052.     CX = IRQ number
  8053. Return: AX = status
  8054.         (0000h successful, 0001h currently reserved by another task)
  8055. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  8056. --------O-D419-------------------------------
  8057. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  8058.     AH = 19h
  8059. Return: BX = caller's task ID
  8060. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8061.       system by The Software Link, Inc.
  8062. SeeAlso: AH=1Dh,AH=1Eh
  8063. --------O-D41A-------------------------------
  8064. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  8065.     AH = 1Ah
  8066.     AL = subfunction (00h read, 01h set, 02h get and set)
  8067.     BX = task ID (FFFFh for current task)
  8068.     CL = new priority value
  8069. Return: CF clear if successful
  8070.         CL = current priority value
  8071.     CF set on error
  8072.         AX = error code (see INT 21/AH=59h)
  8073. SeeAlso: AH=1Bh,AH=1Ch
  8074. --------O-D41B-------------------------------
  8075. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  8076.     AH = 1Bh
  8077.     AL = subfunction (00h read, 01h set, 02h get and set)
  8078.     BX = task ID (FFFFh for current task) (see AH=19h)
  8079.     CL = new time slice value
  8080. Return: CF clear if successful
  8081.         CL = current time slice value
  8082.     CF set on error
  8083.         AX = error code (see INT 21/AH=59h)
  8084. SeeAlso: AH=1Ah,AH=1Ch
  8085. --------O-D41C-------------------------------
  8086. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  8087.     AH = 1Ch
  8088.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  8089.     BX = task ID (FFFFh for current task)
  8090. Return: CF clear if successful
  8091.         CL = current keyboard state
  8092.     CF set on error
  8093.         AX = error code (INT 21/AH=59h)
  8094. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8095.       system by The Software Link, Inc.
  8096. SeeAlso: AH=1Ah,AH=1Bh
  8097. --------O-D41D-------------------------------
  8098. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  8099.     AH = 1Dh
  8100.     BX = task ID (FFFFh for current task) (see AH=19h)
  8101.     ES:DI -> buffer for program name (see below)
  8102. Return: CF clear if successful
  8103.         ES:DI buffer filled
  8104.     CF set on error
  8105.         AX = error code (see INT 21/AH=59h)
  8106. SeeAlso: AH=19h,AH=1Eh
  8107.  
  8108. Format of buffer:
  8109. Offset    Size    Description
  8110.  00h  8 BYTEs    filename
  8111.  08h  3 BYTEs    extension
  8112. --------O-D41E-------------------------------
  8113. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  8114.     AH = 1Eh
  8115.     BX = task ID (FFFFh for current task)
  8116.     ES:DI -> 4-byte buffer for username
  8117. Return: CF clear if successful
  8118.         CL = security class
  8119.         20h (' ') none
  8120.         41h-5Ah ('A'-'Z') security level
  8121.         ES:DI buffer filled
  8122.     CF set on error
  8123.         AX = error code (see INT 21/AH=59h)
  8124. SeeAlso: AH=19h,AH=1Dh
  8125. --------O-D41F-------------------------------
  8126. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  8127.     AH = 1Fh
  8128.     BX = task ID (FFFFh for current task) (see AH=19h)
  8129. Return: CF clear if successful
  8130.         CX = start segment of task
  8131.         DX = ending segment of task
  8132.     CF set on error
  8133.         AX = error code (see INT 21/AH=59h)
  8134. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8135.       system by The Software Link, Inc.
  8136. SeeAlso: AH=2Dh
  8137. --------O-D420-------------------------------
  8138. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  8139.     AH = 20h
  8140.     BX = task ID (FFFFh for current task) (see AH=19h)
  8141. Return: CF clear if successful
  8142.         CX = port number (0000h if none)
  8143.         DI:SI = baudrate (if CX nonzero)
  8144.     CF set on error
  8145.         AX = error code (see INT 21/AH=59h)
  8146. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8147.       system by The Software Link, Inc.
  8148. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  8149. --------O-D421-------------------------------
  8150. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  8151.     AH = 21h
  8152.     BX = task ID (FFFFh for current task) (see AH=19h)
  8153. Return: CF clear if successful
  8154.         AX = ASCII percentage of System Memory Pool used
  8155.         (AH = tens digit, AL = ones digit)
  8156.         DS,SI destroyed
  8157.     CF set on error
  8158.         AX = error code (see INT 21/AH=59h)
  8159. SeeAlso: AH=22h
  8160. --------O-D422-------------------------------
  8161. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  8162.     AH = 22h
  8163.     DS:SI -> addtask data structure (see below)
  8164. Return: CF clear if successful
  8165.         ES = segment address of the new task's TCB data structure
  8166.     CF set on error
  8167.         AX = error code (see below)
  8168. SeeAlso: AH=21h
  8169.  
  8170. Values for error code:
  8171.  08h    insufficient memory
  8172.  0Bh    invalid addtask structure format
  8173.  12h    insufficient available space in system memory pool
  8174.  1Fh    general failure
  8175.  55h    already allocated
  8176.  57h    if task already in use or invalid parameter
  8177.  
  8178. Format of addtask data structure:
  8179. Offset    Size    Description
  8180.  00h    WORD    task size in KB (min 16KB)
  8181.  02h    WORD    task ID (0000h for automatic selection)
  8182.  04h    BYTE    task class (' ' or 'A'-'Z')
  8183.  05h    DWORD    -> ASCIZ name of task startup batchfile
  8184.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  8185.  0Dh    WORD    task port
  8186.  0Fh    DWORD    task baud rate
  8187.  13h    DWORD    (return) total extended memory
  8188.  17h    DWORD    (return) number of 4K extended memory pages allocated
  8189.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  8190.  1Dh    WORD    (return) system memory pool size in paragraphs
  8191.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  8192.  21h  3 BYTEs    reserved
  8193. --------O-D423-------------------------------
  8194. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  8195.     AH = 23h
  8196.     BX = task ID (FFFFh for current task)
  8197.     DS:SI -> entry point of the new Device Driver Terminal
  8198. Return: CF clear if successful
  8199.     CF set on error
  8200.         AX = error code (see INT 21/AH=59h)
  8201. --------O-D424-------------------------------
  8202. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  8203.     AH = 24h
  8204. Return: DS:DX -> '$'-terminated string containing the serial number
  8205. --------O-D425-------------------------------
  8206. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  8207.     AH = 25h
  8208.     DX = driver's CS value
  8209. Return: AX = segment address of driver in system memory pool
  8210.         (0000h if the driver is not within the system memory pool)
  8211. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8212.       system by The Software Link, Inc.
  8213. --------O-D426-------------------------------
  8214. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  8215.     AH = 26h
  8216. Return: DX = segment/selector of the System Control Block (see AH=02h)
  8217. Note:    this function supersedes AH=02h
  8218. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  8219. --------O-D427-------------------------------
  8220. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  8221.     AH = 27h
  8222.     BX = task ID (FFFFh if current task) (see AH=19h)
  8223. Return: CF clear if successful
  8224.         DX = segment/selector for the Task Control Block (see AH=04h)
  8225.     CF set on error
  8226.         AX = error code (INT 21/AH=59h)
  8227. Note:    this function supersedes AH=04h
  8228. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  8229. --------O-D428-------------------------------
  8230. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  8231.     AH = 28h
  8232.     BX = offset into control block at which to start reading
  8233.     CX = number of bytes to read
  8234.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8235.     ES:DI -> buffer for data
  8236. Return: CF clear if successful
  8237.     CF set on error
  8238.         AX = error code (see also INT 21/AH=59h)
  8239.         05h access denied due to an invalid segment/selector
  8240. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  8241. --------O-D429-------------------------------
  8242. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  8243.     AH = 29h
  8244.     BX = offset into control block at which to start writing
  8245.     CX = number of bytes to write
  8246.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8247.     DS:SI -> buffer containing data to be written
  8248. Return: CF clear if successful
  8249.     CF set on errro
  8250.         AX = error code (see also INT 21/AH=59h)
  8251.         05h access denied due to an invalid segment/selector
  8252. Note:     this function performs no bounds checking
  8253. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8254.       system by The Software Link, Inc.
  8255. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  8256. --------O-D42A-------------------------------
  8257. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  8258.     AH = 2Ah
  8259.     BX = offset into control block at which to start swap
  8260.     CX = number of bytes to swap
  8261.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8262.     DS:SI -> buffer containing new data and to receive current data
  8263. Return: CF clear if successful
  8264.     CF set on error
  8265.         AX = error code (see also INT 21/AH=59h)
  8266.         05h access denied due to an invalid segment/selector
  8267. Note:    the interrupts are disabled during the swap to prevent corruption
  8268. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  8269. --------O-D42C-------------------------------
  8270. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  8271.     AH = 2Ch
  8272.     AL = function
  8273.         00h set spooler timeout
  8274.         CX = timout value in seconds
  8275.         01h get spooler timeout
  8276.         Return: CX = current timeout in seconds
  8277.         02h get spooler parameters
  8278.         Return: CH = priority (00h-09h)
  8279.             CL = disposition (d, h, i, n, s)
  8280.             SI = class (a - z)
  8281.         03h set spooler parameters
  8282.         CH = priority (00h-09h)
  8283.         CL = disposition (d, h, i, n, s)
  8284.         SI = class (a - z)
  8285.         BX = task ID (FFFFh for current task)
  8286.         DX = LPT number
  8287. Return: CF clear if successful
  8288.     CF set on error
  8289.         AX = error code (see INT 21/AH=59h)
  8290. SeeAlso: AH=00h,AH=02h,AH=03h
  8291. --------O-D42D-------------------------------
  8292. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  8293.     AH = 2Dh
  8294. Return: DX = maximum task size in paragraphs
  8295.     BX = start address of task space
  8296. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8297.       system by The Software Link, Inc.
  8298. SeeAlso: AH=1Fh,AH=22h
  8299. --------r-D5---------------------------------
  8300. INT D5 - IBM ROM BASIC - used while in interpreter
  8301. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8302.     BASIC.COM/BASICA.COM do not restore vector on termination
  8303. --------r-D5---------------------------------
  8304. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8305. --------r-D6---------------------------------
  8306. INT D6 - IBM ROM BASIC - used while in interpreter
  8307. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8308.     BASIC.COM/BASICA.COM do not restore vector on termination
  8309. --------r-D6---------------------------------
  8310. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8311. --------r-D7---------------------------------
  8312. INT D7 - IBM ROM BASIC - used while in interpreter
  8313. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8314.     BASIC.COM/BASICA.COM do not restore vector on termination
  8315. --------r-D7---------------------------------
  8316. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8317. --------r-D8---------------------------------
  8318. INT D8 - IBM ROM BASIC - used while in interpreter
  8319. Notes:    called by ROM BASIC
  8320.     BASIC.COM/BASICA.COM do not restore vector on termination
  8321. --------r-D8---------------------------------
  8322. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8323. --------H-D8---------------------------------
  8324. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  8325. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  8326.       but may be directed via a commandline switch to use any range
  8327.       starting at a multiple of 8 between 78h and E0h
  8328. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  8329. SeeAlso: INT D9"Screen Thief"
  8330. --------r-D9---------------------------------
  8331. INT D9 - IBM ROM BASIC - used while in interpreter
  8332. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8333.     BASIC.COM/BASICA.COM do not restore vector on termination
  8334. --------r-D9---------------------------------
  8335. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8336. --------H-D9---------------------------------
  8337. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  8338. Note:    (see INT D8"Screen Thief")
  8339. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  8340. --------r-DA---------------------------------
  8341. INT DA - IBM ROM BASIC - used while in interpreter
  8342. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8343.     BASIC.COM/BASICA.COM do not restore vector on termination
  8344. --------r-DA---------------------------------
  8345. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8346. --------H-DA---------------------------------
  8347. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  8348. Note:    (see INT D8"Screen Thief")
  8349. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  8350. --------r-DB---------------------------------
  8351. INT DB - IBM ROM BASIC - used while in interpreter
  8352. Notes:    called by ROM BASIC
  8353.     BASIC.COM/BASICA.COM do not restore vector on termination
  8354. --------r-DB---------------------------------
  8355. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8356. --------H-DB---------------------------------
  8357. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  8358. Note:    (see INT D8"Screen Thief")
  8359. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  8360. --------u-DC---------------------------------
  8361. INT DC - PC/370 v4.1- - API
  8362. SeeAlso: INT 60"PC/370"
  8363. --------r-DC---------------------------------
  8364. INT DC - IBM ROM BASIC - used while in interpreter
  8365. Notes:    called by ROM BASIC
  8366.     BASIC.COM/BASICA.COM do not restore vector on termination
  8367. --------r-DC---------------------------------
  8368. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8369. --------H-DC---------------------------------
  8370. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  8371. Note:    (see INT D8"Screen Thief")
  8372. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  8373. --------r-DD---------------------------------
  8374. INT DD - IBM ROM BASIC - used while in interpreter
  8375. Notes:    called by ROM BASIC
  8376.     BASIC.COM/BASICA.COM do not restore vector on termination
  8377. --------r-DD---------------------------------
  8378. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  8379.     BX = where to place keystrokes
  8380.         FFFFh insert before current buffer contents
  8381.         0000h replace current contents
  8382.         0001h insert after current contents
  8383.     CX = number of keystroke events to insert
  8384.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  8385.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  8386.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  8387. SeeAlso: INT 16/AH=05h
  8388. --------H-DD---------------------------------
  8389. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  8390. Note:    (see INT D8"Screen Thief")
  8391. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  8392. --------r-DE---------------------------------
  8393. INT DE - IBM ROM BASIC - used while in interpreter
  8394. Notes:    called by ROM BASIC
  8395.     BASIC.COM/BASICA.COM do not restore vector on termination
  8396. --------r-DE---------------------------------
  8397. INT DE - APL*PLUS/PC - ???
  8398. Note:    appears to be the same as INT 16
  8399. --------H-DE---------------------------------
  8400. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  8401. Note:    (see INT D8"Screen Thief")
  8402. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  8403. --------b-DF---------------------------------
  8404. INT DF - Victor 9000 - SuperBIOS
  8405. --------r-DF---------------------------------
  8406. INT DF - IBM ROM BASIC - used while in interpreter
  8407. Notes:    called by ROM BASIC
  8408.     BASIC.COM/BASICA.COM do not restore vector on termination
  8409. --------r-DF---------------------------------
  8410. INT DF - APL*PLUS/PC - SAME AS INT 10
  8411. SeeAlso: INT 10
  8412. --------H-DF---------------------------------
  8413. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  8414. Note:    (see INT D8"Screen Thief")
  8415. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  8416. --------r-E0---------------------------------
  8417. INT E0 - IBM ROM BASIC - used while in interpreter
  8418. Notes:    called by ROM BASIC
  8419.     BASIC.COM/BASICA.COM do not restore vector on termination
  8420. --------r-E0---------------------------------
  8421. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  8422. SeeAlso: INT CF"APL"
  8423. --------v-E0---------------------------------
  8424. INT E0 - VIRUS - "Micro-128" - ???
  8425. Note:    Micro-128 also overwrites the upper half of the interrupt table
  8426. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  8427. --------O-E0---------------------------------
  8428. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  8429.     CL = function number
  8430.     DS,DX = parameters
  8431. Return: as appropriate for function
  8432. Notes:    several functions are covered in more detail in following entries
  8433.     most of these calls are also supported by Digital Research's DOS Plus
  8434.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  8435.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  8436. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  8437.  
  8438. Values for function number:
  8439.  00h    terminate calling process (see also INT 21/AH=00h)
  8440.  01h    read a character
  8441.  02h    write character to default console (see also INT 21/AH=02h)
  8442.  03h    read character from default AUX (see also INT 21/AH=03h)
  8443.  04h    write character to default AUX (see also INT 21/AH=04h)
  8444.  05h    write character to default list device (see also INT 21/AH=05h)
  8445.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  8446.  07h    return default AUX input status
  8447.  08h    return default AUX output status
  8448.  09h    write string to default console (see also INT 21/AH=09h)
  8449.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  8450.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  8451.  0Ch    get BDOS release ID
  8452.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  8453.  0Eh    set default drive (see also INT 21/AH=0Eh)
  8454.  0Fh    open file via FCB (see also INT 21/AH=0Fh)
  8455.  10h    close file via FCB (see also INT 21/AH=10h)
  8456.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  8457.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  8458.  13h    delete file via FCB (see also INT 21/AH=13h)
  8459.  14h    sequential read via FCB (see also INT 21/AH=14h)
  8460.  15h    sequential write via FCB (see also INT 21/AH=15h)
  8461.  16h    create file via FCB (see also INT 21/AH=16h)
  8462.  17h    rename file via FCB (see also INT 21/AH=17h)
  8463.  18h    get bit map of logged drives
  8464.  19h    get default drive (see also INT 21/AH=19h)
  8465.  1Ah    set DMA address offset
  8466.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  8467.  1Ch    set default drive to read-only
  8468.  1Dh    get bit map of read-only drives
  8469.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  8470.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  8471.  20h    get/set default user number
  8472.  21h    read random record via FCB (see also INT 21/AH=21h)
  8473.  22h    write random record via FCB (see also INT 21/AH=22h)
  8474.  23h    compute file size with FCB (see also INT 21/AH=23h)
  8475.  24h    get FCB random record number (see also INT 21/AH=24h)
  8476.  25h    reset specified drives
  8477.  26h    access specified drives (not in DR DOS Plus v2.1)
  8478.  27h    free specified drives
  8479.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  8480.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  8481.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  8482.  2Ch    set BDOS multisector count
  8483.  2Dh    set BDOS error mode
  8484.  2Eh    get free space on disk
  8485.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  8486.  30h    flush write-deferred buffers
  8487.  31h    get/set system variable (DOS Plus v2.1)
  8488.  32h    call BIOS (XIOS) character routine (see below)
  8489.  33h    set DMA address segment
  8490.  34h    get DMA buffer address
  8491.  35h    CP/M-86 allocate maximum memory
  8492.  36h    allocate maximum memory at specified segment
  8493.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  8494.  38h    allocate memory at specified segment
  8495.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  8496.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  8497.  3Bh    load .CMD file into memory
  8498.  3Ch    (DOS Plus v2.1) call RSX program
  8499.  40h    (DR-NET) log on a server
  8500.  41h    (DR-NET) log off a server
  8501.  42h    (DR-NET) send a message
  8502.  43h    (DR-NET) receive a message
  8503.  44h    (DR-NET) get network status
  8504.  45h    (DR-NET) get requestor configuration table
  8505.  46h    (DR-NET) set compatibility attributes
  8506.  47h    (DR-NET) get server configuration table
  8507.  48h    (DR-NET) set network error mode
  8508.  49h    (DR-NET) attach network
  8509.  4Ah    (DR-NET) detach network
  8510.  4Bh    (DR-NET) set default password
  8511.  4Ch    (DR-NET) get-set long timeout
  8512.  4Dh    (DR-NET) get parameter table
  8513.  50h    (DR-NET) get network information
  8514.  53h    get current time (see also INT 21/AH=2Ch)
  8515.  54h    set current time (see also INT 21/AH=2Dh)
  8516.  55h    get binary system date (see also INT 21/AH=2Ah)
  8517.  56h    set system date (see also INT 21/AH=2Bh)
  8518.  57h    allocate system flag
  8519.  58h    deallocate system flag
  8520.  59h    reserve memory in global area
  8521.  5Ah    lock physical drive
  8522.  5Bh    unlock physical drive
  8523.  5Ch    search path for executable file
  8524.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  8525.  5Eh    get/set process exit code
  8526.  5Fh    set country information
  8527.  60h    get country information
  8528.  63h    truncate FCB file (see also INT 21/AH=28h)
  8529.  64h    create/update directory label
  8530.  65h    get directory label
  8531.  66h    get FCB date stamp and password mode
  8532.  67h    write extended FCB
  8533.  68h    set system date and time
  8534.  69h    get system date and time in binary
  8535.  6Ah    establish password for file access
  8536.  6Bh    get OS serial number
  8537.  6Ch    (DOS Plus v2.1) get/set program return code
  8538.  6Dh    get/set console mode
  8539.  6Eh    get/set string delimiter
  8540.  6Fh    write block to default console
  8541.  70h    write block to default list device
  8542.  71h    execute DOS-compatible function
  8543.  74h    set FCB time and date stamps
  8544.  80h    allocate memory
  8545.  82h    deallocate memory
  8546.  83h    poll I/O device
  8547.  84h    wait on system flag
  8548.  85h    set system flag
  8549.  86h    create message queue
  8550.  87h    open message queue
  8551.  88h    delete message queue
  8552.  89h    read from message queue
  8553.  8Ah    conditionally read from message queue
  8554.  8Bh    write to message queue
  8555.  8Ch    conditionally write to message queue
  8556.  8Dh    delay calling process
  8557.  8Eh    call process dispatcher (yield CPU)
  8558.  8Fh    terminate calling process (same as function 00h)
  8559.  90h    create a process
  8560.  91h    set calling process' priority
  8561.  92h    attach to default console
  8562.  93h    detach from default console
  8563.  95h    assign default console to process
  8564.  96h    interpret and execute commandline
  8565.  97h    resident procedure library
  8566.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  8567.  99h    return default console
  8568.  9Ah    get address of system data (SYSDAT)
  8569.  9Bh    get system time and date
  8570.  9Ch    return calling process' descriptor
  8571.  9Dh    terminate process by name or PD address
  8572.  9Eh    attach to default list device
  8573.  9Fh    detach from default list device
  8574.  A0h    select default list device
  8575.  A1h    conditionally attach to default list device
  8576.  A2h    conditionally attach to default console
  8577.  A3h    get OS version number
  8578.  A4h    get default list device
  8579.  A5h    attach to default AUX
  8580.  A6h    detach from default AUX
  8581.  A7h    conditionally attach to default AUX
  8582.  A8h    set default AUX
  8583.  A9h    return default AUX
  8584.  ACh    read block from default AUX
  8585.  ADh    (DOS Plus v2.1) write block to default AUX
  8586.  B0h    configure default AUX
  8587.  B1h    get/set device control parameters
  8588.  B2h    send Break through default AUX
  8589.  B3h    allocate physical memory
  8590.  B4h    free physical memory
  8591.  B5h    map physical memory
  8592.  B6h    nondestructive message queue read
  8593.  B7h    timed wait on system flag
  8594.  B8h    get/set I/O port mapping
  8595.  B9h    set list device timeout
  8596.  BAh    set AUX timeout value
  8597.  BBh    execute XIOS service
  8598.  BDh    (DR Multiuser DOS) delay
  8599.  FFh    return 80386 to native mode
  8600.  
  8601. Values for DOS Plus v2.1 XIOS functions:
  8602.  00h    terminate program
  8603.  01h    ???
  8604.  02h    check for console input status
  8605.  03h    read character from console
  8606.  04h    write character to console
  8607.  05h    write character to list device
  8608.  06h    write character to auxiliary device
  8609.  07h    read cahracter from auxiliary device
  8610.  0Fh    get list device status
  8611.  10h-14h reserved
  8612.  15h    device initialization
  8613.  16h    check console output status
  8614.  17h-7Fh reserved
  8615. ---BBC Acorn---
  8616.  80h    get XIOS version
  8617.  81h    get Tube semaphore
  8618.  82h    release Tube semaphore
  8619.  83h    select text/graphics
  8620.  84h    update B&W graphics rectangle
  8621.  85h    update color graphics rectangle
  8622.  86h    get/release/update mouse
  8623.  87h    get system error info
  8624.  88h    entry in CLOCK called by WatchDog RSP
  8625.  89h    BBC OSBYTE function
  8626.  8Ah    BBC OSWORD function
  8627.  
  8628. DR Multiuser DOS Error Return Codes:
  8629.  00h no error
  8630.  01h system call not implemented
  8631.  02h illegal system call number
  8632.  03h cannot find memory
  8633.  04h illegal flag number
  8634.  05h flag overrun
  8635.  06h flag underrun
  8636.  07h no unused Queue Descriptors
  8637.  08h no free queue buffer
  8638.  09h cannot find queue
  8639.  0Ah queue in use
  8640.  0Ch no free Process Descriptors
  8641.  0Dh no queue access
  8642.  0Eh empty queue
  8643.  0Fh full queue
  8644.  10h CLI queue missing
  8645.  11h no 8087 in system
  8646.  12h no unused Memory Descriptors
  8647.  13h illegal console number
  8648.  14h no Process Descriptor match
  8649.  15h no console match
  8650.  16h no CLI process
  8651.  17h illegal disk number
  8652.  18h illegal filename
  8653.  19h illegal filetype
  8654.  1Ah character not ready
  8655.  1Bh illegal Memory Descriptor
  8656.  1Ch bad return from BDOS load
  8657.  1Dh bad return from BDOS read
  8658.  1Eh bad return from BDOS open
  8659.  1Fh null command
  8660.  20h not owner of resource
  8661.  21h no CSEG in load file
  8662.  22h process Descriptor exists on Thread Root
  8663.  23h could not terminate process
  8664.  24h cannot attach to process
  8665.  25h illegal list device number
  8666.  26h illegal password
  8667.  28h external termination occurred
  8668.  29h fixup error upon load
  8669.  2Ah flag set ignored
  8670.  2Bh illegal auxilliary device number
  8671. --------O-E0----CL03-------------------------
  8672. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  8673.     CL = 03h
  8674. Return: AL = ASCII character
  8675. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  8676.       input device (AUXn:); control is not returned to the calling
  8677.       process until a character has been read.
  8678.     if another process owns AUX, this call blocks until the device becomes
  8679.       available
  8680. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  8681. --------O-E0----CL04-------------------------
  8682. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  8683.     CL = 04h
  8684.     DL = ASCII character
  8685. Return: nothing
  8686. Note:    if another process owns AUX, this call blocks until the device becomes
  8687.       available
  8688. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  8689. --------O-E0----CL07-------------------------
  8690. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  8691.     CL = 07h
  8692. Return: AL = status
  8693.         00h not ready
  8694.         FFh character available
  8695. Desc:    determine whether the current AUX device has input available
  8696. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  8697. --------O-E0----CL08-------------------------
  8698. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  8699.     CL = 08h
  8700. Return: AL = status
  8701.         00h not ready
  8702.         FFh ready for output
  8703. Desc:    determine whether the current AUX device is able to accept more output
  8704. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  8705. --------O-E0----CL59-------------------------
  8706. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  8707.     CL = 59h
  8708.     DX = size in bytes
  8709. Return: AX = FFFFh if failed
  8710.     AX = other if successful
  8711.         ES:BX -> reserved memory
  8712. --------O-E0----CL86-------------------------
  8713. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  8714.     CL = 86h
  8715.     DS:DX -> queue descriptor (see below)
  8716. Return: AX = status
  8717.         0000h success
  8718.         FFFFh failure
  8719.     CX = error code
  8720. SeeAlso: INT E0/CL=87h
  8721.  
  8722. Format of queue descriptor:
  8723. Offset    Size    Description
  8724.  00h  2 WORDs    internal use, initialize to zeros
  8725.  04h    WORD    flags
  8726.  06h  8 BYTEs    queue name
  8727.  0Eh    WORD    length of message
  8728.  10h    WORD    number of messages
  8729.  12h  4 WORDs    internal use, initialize to zeros
  8730.  1Ah    WORD    offset in system area of buffer for messages
  8731. --------O-E0----CL87-------------------------
  8732. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  8733.     CL = 87h
  8734.     DS:DX -> queue parameter block (see below)
  8735. Return: AX = status
  8736.         0000h success
  8737.         FFFFh failure
  8738.     CX = error code
  8739. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  8740.  
  8741. Format of queue parameter block:
  8742. Offset    Size    Description
  8743.  00h    WORD    internal use, initialize to zero
  8744.  02h    WORD    queue ID (set by INT E0/CL=87h)
  8745.  04h    WORD    internal use, initialize to zero
  8746.  06h    WORD    offset of queue message buffer
  8747.  08h  8 BYTEs    queue name
  8748. --------O-E0----CL89-------------------------
  8749. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  8750.     CL = 89h
  8751.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8752. Return: AX = status
  8753.         0000h success
  8754.         FFFFh failure
  8755.     CX = error code
  8756. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  8757. --------O-E0----CL8A-------------------------
  8758. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  8759.     CL = 8Ah
  8760.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8761. Return: AX = status
  8762.         0000h success
  8763.         FFFFh failure
  8764.     CX = error code
  8765. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  8766. --------O-E0----CL8B-------------------------
  8767. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  8768.     CL = 8Bh
  8769.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8770. Return: AX = status
  8771.         0000h success
  8772.         FFFFh failure
  8773.     CX = error code
  8774. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  8775. --------O-E0----CL8C-------------------------
  8776. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  8777.     CL = 8Ch
  8778.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8779. Return: AX = status
  8780.         0000h success
  8781.         FFFFh failure
  8782.     CX = error code
  8783. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  8784. --------O-E0----CL8E-------------------------
  8785. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  8786.     CL = 8Eh
  8787.     DX = FFFFh (optional) to force dispatch
  8788. Return: nothing
  8789. Desc:    allow other processes of the same or higher priority to run if they
  8790.       are ready
  8791. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  8792. SeeAlso: INT E0/CL=91h
  8793. --------O-E0----CL91-------------------------
  8794. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  8795.     CL = 91h
  8796.     DL = new priority (00h highest to FFh lowest)
  8797. Note:    sets priority of calling process; transient processes are initialized
  8798.       to priority C8h
  8799. SeeAlso: INT E0/CL=8Eh
  8800. --------O-E0----CL93-------------------------
  8801. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  8802.     CL = 93h
  8803. Return: AX = status
  8804.         0000h successfully detached
  8805.         FFFFh detach failed
  8806. --------O-E0----CLA5-------------------------
  8807. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  8808.     CL = A5h
  8809. Desc:    attaches the default auxiliary device to the calling process unless
  8810.       it is already attached to another process, in which case the call
  8811.       blocks until the device becomes available
  8812. Note:    this call should be used before attempting to read or write from
  8813.       the AUX device; however, the I/O calls internally call this function
  8814.       to ensure device ownership
  8815. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  8816. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  8817. --------O-E0----CLA6-------------------------
  8818. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  8819.     CL = A6h
  8820. Return: AX = status
  8821.         0000h successfully detached
  8822.         FFFFh detach failed
  8823.     CX = error code
  8824. SeeAlso: INT E0/CL=A5h,INT E0/CL=A7h
  8825. --------O-E0----CLA7-------------------------
  8826. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  8827.     CL = A7h
  8828. Return: AX = status
  8829.         0000h attached
  8830.         FFFFh unable to attach
  8831. Desc:    attaches the default auxiliary device to the calling process if it is
  8832.       available
  8833. Note:    does not block if the device is already in use
  8834. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  8835. --------O-E0----CLA8-------------------------
  8836. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  8837.     CL = A8h
  8838.     DL = auxiliary device number
  8839. Return: AX = status
  8840.         0000h successful
  8841.         FFFFh failed
  8842.     CX = error code
  8843. Desc:    specify which physical device will become AUX
  8844. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  8845. --------O-E0----CLA9-------------------------
  8846. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  8847.     CL = A9h
  8848. Return: AL = current default auxiliary device number
  8849. Desc:    determine which physical device is currently AUX
  8850. SeeAlso: INT E0/CL=A8h
  8851. --------O-E0----CLAC-------------------------
  8852. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  8853.     CL = ACh
  8854.     DS:DX -> character control block (CHCB) (see below)
  8855. Return: AX = number of characters read
  8856. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  8857.       until the buffer is full or the device is no longer ready
  8858. Notes:    if the device is initially not ready, blocks until at least one
  8859.       character has been read
  8860.     if another process owns AUX, this call blocks until the device becomes
  8861.       available
  8862. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  8863.  
  8864. Format of character control block (CHCB):
  8865. Offset    Size    Description
  8866.  00h    DWORD    pointer to character buffer
  8867.  04h    WORD    length of character buffer
  8868. --------O-E0----CLAD-------------------------
  8869. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  8870.     CL = ADh
  8871.     DS:DX -> character control block (see INT E0/CL=ACh)
  8872. Return: AX = number of characters written
  8873. Note:    does not return until at least one character has been written
  8874. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  8875. --------O-E0----CLB0-------------------------
  8876. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  8877.     CL = B0h
  8878.     DX:DX -> AUX device parameter block (see below)
  8879. Return: AX = status
  8880.         0000h successful
  8881.         parameter block updated
  8882.         FFFFh failed
  8883.         CX = error code
  8884. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8885.  
  8886. Format of AUX device parameter block:
  8887. Offset    Size    Description
  8888.  00h    BYTE    function (00h get, 01h set)
  8889.  01h    BYTE    baud rate (see below) FFh = don't change/unknown
  8890.  02h    BYTE    parity (see below)
  8891.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  8892.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  8893.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  8894.         FFh unknown/don't change)
  8895.  06h    BYTE    XON character, FFh unknown/don't change
  8896.  07h    BYTE    XOFF character, FFh unknown/don't change
  8897.  
  8898. Values for parity:
  8899.  00h    none
  8900.  01h    odd
  8901.  02h    none
  8902.  03h    even
  8903.  04h    stick parity bit
  8904.  FFh    don't change/unknown
  8905.  
  8906. Values for baud rate:
  8907.  00h    50 baud
  8908.  01h    62.5 baud
  8909.  02h    75 baud
  8910.  03h    110 baud
  8911.  04h    134.5 baud
  8912.  05h    150 baud
  8913.  06h    200 baud
  8914.  07h    300 baud
  8915.  08h    600 baud
  8916.  09h    1200 baud
  8917.  0Ah    1800 baud
  8918.  0Bh    2000 baud
  8919.  0Ch    2400 baud
  8920.  0Dh    3600 baud
  8921.  0Eh    4800 baud
  8922.  0Fh    7200 baud
  8923.  10h    9600 baud
  8924.  11h    19200 baud
  8925.  12h    38400 baud
  8926.  13h    56000 baud
  8927.  14h    76800 baud
  8928.  15h    115200 baud
  8929. --------O-E0----CLB1-------------------------
  8930. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  8931.     CL = B1h
  8932.     DS:DX -> AUX device control block (see below)
  8933. Return: AX = status
  8934.         0000h successful
  8935.         control block updated
  8936.         FFFFh failed
  8937.         CX = error code
  8938. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  8939.  
  8940. Format of AUX device control block:
  8941. Offset    Size    Description
  8942.  00h    BYTE    function (00h get, 01h set)
  8943.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  8944.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  8945.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  8946.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  8947.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  8948.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  8949. --------O-E0----CLB2-------------------------
  8950. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  8951.     CL = B2h
  8952.     DX = duration of break in system ticks (0001h-FFFFh)
  8953. Return: AX = status
  8954.         0000h successful
  8955.         break signal completed
  8956.         FFFFh failed
  8957.         CX = error code
  8958. Note:    if the AUX device is currently owned by another process, this call will
  8959.       block until the device becomes available
  8960. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8961. --------O-E0----CLBD-------------------------
  8962. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  8963.     CL = BDh
  8964.     DX = delay in system ticks
  8965. Return: after the delay elapses
  8966. Notes:    the length of a system tick is installation-dependent (typically
  8967.       1/50 or 1/60 second); the length may be determined by reading the
  8968.       TICKSPERSEC value from the system data segment
  8969.     the actual delay before the process is rescheduled to run may be up to
  8970.       one tick longer than requested; the delay between rescheduling and
  8971.       actual execution cannot be predicted if higher-priority processes
  8972.       are awaiting a turn at the CPU
  8973. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  8974. --------g-E00000-----------------------------
  8975. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  8976.     AX = 0000h
  8977. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  8978.       which specially-written .COM or .EXE programs form robots battling
  8979.       each other in a user-defined arena
  8980. --------g-E00001-----------------------------
  8981. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  8982.     AX = 0001h
  8983.     BX = speed (0-maximum for robot)
  8984.     CX = direction (0-359 degrees)
  8985. Notes:    the speed will change to the specified value at the maximum
  8986.       acceleration the robot is capable of; if the robot is already moving
  8987.       faster than its maximum maneuverability speed, it will not be able
  8988.       to change direction
  8989.     this call also terminates the current robot's turn
  8990. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  8991. --------g-E00002-----------------------------
  8992. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  8993.     AX = 0002h
  8994.     BX = direction (0-359 degrees)
  8995.     CX = resolution (0-45 degrees)
  8996. Return: AX = status
  8997.         FFFFh if nothing detected
  8998.         else robot ID (0-19)
  8999.         BX = range to detected robot
  9000. Notes:    the scan searches within CX degrees to either side of the specified
  9001.       direction
  9002.     the scanner will see right through walls, but shells will not pass
  9003.       through walls
  9004.     this call also terminates the current robot's turn
  9005. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  9006. --------g-E00003-----------------------------
  9007. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  9008.     AX = 0003h
  9009.     BX = direction (0-359 degrees)
  9010.     CX = range (0-700)
  9011. Return: AX = status (0000h not fired, else ID of shell fired)
  9012. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  9013.       takes 50 ticks to reload
  9014.     this call also terminates the current robot's turn
  9015. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  9016. --------g-E00010-----------------------------
  9017. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  9018.     AX = 0010h
  9019. Return: BX = current X coordinate (0-999)
  9020.     CX = current Y coordinate (0-999)
  9021. --------g-E00011-----------------------------
  9022. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  9023.     AX = 0011h
  9024.     BX = target robot ID
  9025.     CX = data to be sent
  9026. Return: AX = status (0000h data could not be sent, 0001h data sent)
  9027. Note:    this call costs one unit of battery power
  9028. --------g-E00012-----------------------------
  9029. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  9030.     AX = 0012h
  9031. Return: AX = status
  9032.         0000h no data available
  9033.         0001h data retrieved
  9034.         BX = sender's ID
  9035.         CX = data
  9036. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  9037.       robots will be unable to send more data until some is read
  9038. --------g-E00013-----------------------------
  9039. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  9040.     AX = 0013h
  9041. Return: BX = damage status
  9042. Note:    the initial value depends on configuration, but is typically 100; as
  9043.       the robot is damaged, it decreases
  9044. --------g-E00014-----------------------------
  9045. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  9046.     AX = 0014h
  9047. Return: BX = current speed
  9048. --------g-E00015-----------------------------
  9049. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  9050.     AX = 0015h
  9051. Return: BX = current battery charge
  9052. Note:    the battery starts off with 1000 units of charge, and is constantly
  9053.       being charged by solar panels and constantly discharged by motion;
  9054.       the battery is charged at 4 units per turn and discharged at
  9055.       0.1*speed units per turn.
  9056. --------g-E00016-----------------------------
  9057. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  9058.     AX = 0016h
  9059. Return: BX:CX = number of game ticks elapsed (not related to real time)
  9060. --------g-E00017-----------------------------
  9061. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  9062.     AX = 0017h
  9063.     BX = angle (0-359 degrees)
  9064. Return: BX:CX = 100000*sine of angle
  9065. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  9066. --------g-E00018-----------------------------
  9067. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  9068.     AX = 0018h
  9069.     BX = angle (0-359 degrees)
  9070. Return: BX:CX = 100000*cosine of angle
  9071. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  9072. --------g-E00019-----------------------------
  9073. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  9074.     AX = 0019h
  9075.     BX = angle (0-359 degrees)
  9076. Return: BX:CX = 100000*tangent of angle
  9077. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  9078. --------g-E0001A-----------------------------
  9079. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  9080.     AX = 001Ah
  9081.     BX:CX = 100000*tangent of an angle
  9082. Return: AX = angle (-90 to +90 degrees)
  9083. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  9084. --------g-E0001B-----------------------------
  9085. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER 
  9086.     AX = 001Bh
  9087.     BX:CX = value
  9088. Return: BX:CX = square root
  9089. SeeAlso: AX=0017h
  9090. --------g-E0001C-----------------------------
  9091. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  9092.     AX = 001Ch
  9093.     BX:CX -> pattern array
  9094. Note:    the pattern array consists of five bytes, the low five bits of each
  9095.       specifying the bit pattern for one line of the robot's screen display
  9096. --------g-E0001D-----------------------------
  9097. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  9098.     AX = 001Dh
  9099.     BX = flag number (0 or 1)
  9100.     CX = new value (0 reset, 1 set)
  9101. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  9102.       which specially-written .COM or .EXE programs form robots battling
  9103.       each other in a user-defined arena
  9104. Note:    the two flag markers may be used for any purpose, typically for
  9105.       debugging to provide a visual display of progress
  9106. --------g-E0001E-----------------------------
  9107. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  9108.     AX = 001Eh
  9109.     BX = number of armor units to buy (negative to sell)
  9110. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  9111.       will not go above its initial rating, so attempts to purchase more
  9112.       will waste battery units
  9113. SeeAlso: AX=001Fh
  9114. --------g-E0001F-----------------------------
  9115. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  9116.     AX = 001Fh
  9117.     BX = number of shells to buy
  9118. Note:    each shell costs ten battery units
  9119. SeeAlso: AX=001Eh,AX=0020h
  9120. --------g-E00020-----------------------------
  9121. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  9122.     AX = 0020h
  9123. Return: BX = number of shells remaining
  9124. SeeAlso: AX=001Fh
  9125. --------g-E00021-----------------------------
  9126. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  9127.     AX = 0021h
  9128.     BX:CX -> 81-byte buffer for map
  9129. Return: buffer filled with 9x9 area of map centered on robot's position
  9130.  
  9131. Values for map squares:
  9132.  2Eh '.' empty square
  9133.  44h 'D' damaging trap
  9134.  52h 'R' refueling point
  9135.  58h 'X' wall
  9136. --------g-E00022-----------------------------
  9137. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  9138.     AX = 0022h
  9139.     BX = new state (0000h become visible, 0001h become invisible)
  9140. Notes:    this function has no effect if the robot is not capable of invisibility
  9141.     the robot can only stay invisible for 100 turns, after which it will
  9142.       automatically become visible; it must also be remain visible for
  9143.       as many turns as it was invisible before it can turn invisible
  9144.       again
  9145. SeeAlso: AX=0024h,AX=0080h
  9146. --------g-E00023-----------------------------
  9147. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  9148.     AX = 0023h
  9149. Return: BX = status of last shell to land
  9150.         0000h missed completely
  9151.         0001h hit a wall
  9152.         0002h hit a robot within 50-square radius
  9153.         0003h hit a robot within 25-square radius
  9154.         0004h hit a robot within 5-square radius
  9155. --------g-E00024-----------------------------
  9156. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  9157.     AX = 0024h
  9158. Return: BX = visibility (0000h visible, 0001h invisible)
  9159. SeeAlso: AX=0022h,AX=0080h
  9160. --------g-E00025-----------------------------
  9161. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  9162.     AX = 0025h
  9163.     BX = Y
  9164.     CX = X
  9165. Return: AX = angle (arctangent of Y/X)
  9166. --------g-E00026-----------------------------
  9167. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  9168.     AX = 0026h
  9169. Return: AX = robot ID
  9170. --------g-E00027-----------------------------
  9171. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  9172.     AX = 0027h
  9173.     BX:CX = ASCIZ IFF string
  9174. Note:    the IFF string may only be set once
  9175. SeeAlso: AX=0028h,AX=0029h
  9176. --------g-E00028-----------------------------
  9177. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  9178.     AX = 0028h
  9179.     BX = robot ID to test
  9180. Return: AX = status
  9181.         0000h IFF strings match
  9182.         0001h IFF strings differ or invalid robot ID
  9183. SeeAlso: AX=0027h
  9184. --------g-E00029-----------------------------
  9185. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  9186.     AX = 0029h
  9187.     BX:CX -> ASCIZ name string
  9188. Note:    the name may only be set once
  9189. SeeAlso: AX=0027h,AX=002Ah
  9190. --------g-E0002A-----------------------------
  9191. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  9192.     AX = 002Ah
  9193.     BX:CX -> ASCIZ name string
  9194.     DX = first ID to check
  9195. Return: AX = robot ID or FFFFh if no robot with specified name
  9196. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  9197. --------g-E0002B-----------------------------
  9198. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  9199.     AX = 002Bh
  9200. Return: AX = team ID (0-2) or FFFFh if 'loner'
  9201. SeeAlso: AX=0029h
  9202. --------g-E0002C-----------------------------
  9203. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  9204.     AX = 002Ch
  9205.     BX = shell ID
  9206. Return: AX = status
  9207.         0000h missed completely
  9208.         0001h hit a wall
  9209.         0002h hit a robot within a 50-square radius
  9210.         0003h hit a robot within a 25-square radius
  9211.         0004h hit a robot within a 5-square radius
  9212.         0005h shell not known (too old or not yet fired)
  9213.         0006h shell still in flight
  9214. SeeAlso: AX=0003h
  9215. --------g-E0002D-----------------------------
  9216. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  9217.     AX = 002Dh
  9218.     BX:CX -> X word variable
  9219. Return: AX = status (0001h OK, 0000h problem with address)
  9220. Note:    after this call, PCROBOTS will automatically update the specified
  9221.       word whenever the robot moves
  9222. SeeAlso: AX=002Eh
  9223. --------g-E0002E-----------------------------
  9224. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  9225.     AX = 002Eh
  9226.     BX:CX -> Y word variable
  9227. Return: AX = status (0001h OK, 0000h problem with address)
  9228. Note:    after this call, PCROBOTS will automatically update the specified
  9229.       word whenever the robot moves
  9230. SeeAlso: AX=002Dh
  9231. --------g-E00080-----------------------------
  9232. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  9233.     AX = 0080h
  9234.     BX = basic configuration (see below)
  9235.     CX = advanced configuration (see below)
  9236. Return: AX = status (0001h OK, 0000h not first call in program)
  9237. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  9238.       which specially-written .COM or .EXE programs form robots battling
  9239.       each other in a user-defined arena
  9240. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  9241.       to allocate more, some items will be given a value of zero.  If this
  9242.       function is not called, each attribute is set to the default value
  9243.       of 2.
  9244.     if the invisibility option is chosen, the robot will start with only
  9245.       900 cannon shells instead of the default 1000
  9246.  
  9247. Bitfields for basic configuration:
  9248. Bit(s)    Description
  9249.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  9250.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  9251.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  9252.  12-15    robot armor (0-4 = 50,75,100,150,200)
  9253.  
  9254. Bitfields for advanced configuration:
  9255. Bit(s)    Description
  9256.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  9257.  3    capable of invisibility
  9258. --------r-E1---------------------------------
  9259. INT E1 - IBM ROM BASIC - used while in interpreter
  9260. Notes:    called by ROM BASIC
  9261.     BASIC.COM/BASICA.COM do not restore vector on termination
  9262. --------N-E1---------------------------------
  9263. INT E1 - PC Cluster Disk Server Information
  9264. SeeAlso: INT E2
  9265. --------r-E2---------------------------------
  9266. INT E2 - IBM ROM BASIC - used while in interpreter
  9267. Notes:    called by ROM BASIC
  9268.     BASIC.COM/BASICA.COM do not restore vector on termination
  9269. --------N-E2---------------------------------
  9270. INT E2 - PC Cluster Program
  9271. --------r-E3---------------------------------
  9272. INT E3 - IBM ROM BASIC - used while in interpreter
  9273. Notes:    called by ROM BASIC
  9274.     BASIC.COM/BASICA.COM do not restore vector on termination
  9275. --------r-E40005-----------------------------
  9276. INT E4 - Logitech Modula v2.0 - MonitorEntry
  9277.     AX = 0005h
  9278.     BX = priority
  9279. SeeAlso: AX=0006h
  9280. --------r-E40006-----------------------------
  9281. INT E4 - Logitech Modula v2.0 - MonitorExit
  9282.     AX = 0006h
  9283. SeeAlso: AX=0005h
  9284. --------r-E4---------------------------------
  9285. INT E4 - IBM ROM BASIC - used while in interpreter
  9286. Notes:    called by ROM BASIC
  9287.     BASIC.COM/BASICA.COM do not restore vector on termination
  9288. --------r-E5---------------------------------
  9289. INT E5 - IBM ROM BASIC - used while in interpreter
  9290. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9291.     BASIC.COM/BASICA.COM do not restore vector on termination
  9292. --------r-E6---------------------------------
  9293. INT E6 - IBM ROM BASIC - used while in interpreter
  9294. Notes:    called by ROM BASIC
  9295.     BASIC.COM/BASICA.COM do not restore vector on termination
  9296. --------r-E7---------------------------------
  9297. INT E7 - IBM ROM BASIC - used while in interpreter
  9298. Notes:    called by ROM BASIC
  9299.     BASIC.COM/BASICA.COM do not restore vector on termination
  9300. --------r-E8---------------------------------
  9301. INT E8 - IBM ROM BASIC - used while in interpreter
  9302. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9303.     BASIC.COM/BASICA.COM do not restore vector on termination
  9304. --------r-E9---------------------------------
  9305. INT E9 - IBM ROM BASIC - used while in interpreter
  9306. Notes:    called by ROM BASIC
  9307.     BASIC.COM/BASICA.COM do not restore vector on termination
  9308. --------r-EA---------------------------------
  9309. INT EA - IBM ROM BASIC - used while in interpreter
  9310. Notes:    called by ROM BASIC
  9311.     BASIC.COM/BASICA.COM do not restore vector on termination
  9312. --------r-EB---------------------------------
  9313. INT EB - IBM ROM BASIC - used while in interpreter
  9314. Notes:    called by ROM BASIC
  9315.     BASIC.COM/BASICA.COM do not restore vector on termination
  9316. --------r-EC---------------------------------
  9317. INT EC - IBM ROM BASIC - used while in interpreter
  9318. Notes:    called by ROM BASIC
  9319.     BASIC.COM/BASICA.COM do not restore vector on termination
  9320. --------N-EC---------------------------------
  9321. INT EC - used by Alloy NTNX
  9322. --------r-EC---------------------------------
  9323. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  9324.     AX = function number (0000h to 0140h)
  9325.     STACK:    DWORD address to return to
  9326.         any arguments required by function
  9327. Return: STACK:    return address popped, but otherwise unchanged
  9328. Desc:    this is the interface from applications to the runtime system by Exact
  9329.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  9330.       it can provide DLL-style capabilities under MS-DOS.
  9331. Note:    the interrupt handler removes the return address and flags placed on
  9332.       the stack by the INT EC, then jumps to the appropriate function
  9333. --------r-ED---------------------------------
  9334. INT ED - IBM ROM BASIC - used while in interpreter
  9335. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9336.     BASIC.COM/BASICA.COM do not restore vector on termination
  9337.     INT 80 through INT ED are modified but not restored by Direct Access
  9338.       v4.0, and may be left dangling by other programs written with the
  9339.       same version of compiled BASIC
  9340. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  9341. --------r-EE---------------------------------
  9342. INT EE - IBM ROM BASIC - used while in interpreter
  9343. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9344.     BASIC.COM/BASICA.COM do not restore vector on termination
  9345. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  9346. --------r-EF---------------------------------
  9347. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  9348. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  9349. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  9350. --------O-EF----CX0473-----------------------
  9351. INT EF - GEM - INTERFACE
  9352.     CX = 0473h
  9353.     DS:DX -> GEM parameter block
  9354. --------r-F0---------------------------------
  9355. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  9356. Note:    BASICA.COM does not restore vector on termination
  9357. SeeAlso: INT EF"BASIC"
  9358. --------*-F1---------------------------------
  9359. INT F1 - reserved for user interrupt
  9360. --------s-F1---------------------------------
  9361. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  9362.     DS:BX -> '$'-terminated text string
  9363. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  9364. --------s-F1---------------------------------
  9365. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  9366. SeeAlso: INT F2"SPEECH"
  9367. --------U-F1---------------------------------
  9368. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  9369. Return: AX:BX -> data area
  9370. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  9371.       and COM2 in software
  9372. Note:    The installation check consists of testing for the following signature
  9373.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  9374.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  9375.       version number
  9376. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  9377. --------v-F1---------------------------------
  9378. INT F1 - VIRUS - "Violetta" - ???
  9379. Note:    used but not chained by virus
  9380. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  9381. --------*-F2---------------------------------
  9382. INT F2 - reserved for user interrupt
  9383. --------s-F2---------------------------------
  9384. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  9385. SeeAlso: INT F1"SPEECH"
  9386. ----------F2---------------------------------
  9387. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  9388.     AH = function
  9389.         01h power up
  9390.         02h power down
  9391.         03h set controls
  9392.         04h capture image
  9393.         05h display image
  9394.         06h read file
  9395.         07h write file
  9396.         08h write array
  9397.         09h read pixel
  9398.         0Ah write pixel
  9399.         0Bh check if VGA present
  9400.         0Ch set video mode
  9401.         0Dh check for keystroke
  9402.         0Eh delay
  9403.     ???
  9404. Return: ???
  9405. Program: ImageCapture is a product of International Computers
  9406. SeeAlso: INT F3"ICCTSR"
  9407. --------*-F3---------------------------------
  9408. INT F3 - reserved for user interrupt
  9409. --------s-F3---------------------------------
  9410. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  9411. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  9412.       value selected with SET-ECHO.EXE
  9413. SeeAlso: INT 2F/AX=FBFBh
  9414. ----------F3---------------------------------
  9415. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  9416. Program: ImageCapture is a product of International Computers
  9417. SeeAlso: INT F2"ICCTSR"
  9418. --------*-F4---------------------------------
  9419. INT F4 - reserved for user interrupt
  9420. --------T-F4---------------------------------
  9421. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  9422. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  9423. --------*-F5---------------------------------
  9424. INT F5 - reserved for user interrupt
  9425. --------T-F5---------------------------------
  9426. INT F5 - DoubleDOS - ???
  9427. --------*-F6---------------------------------
  9428. INT F6 - reserved for user interrupt
  9429. --------T-F6---------------------------------
  9430. INT F6 - DoubleDOS - ???
  9431. --------*-F7---------------------------------
  9432. INT F7 - reserved for user interrupt
  9433. --------T-F7---------------------------------
  9434. INT F7 - DoubleDOS - ???
  9435. ----------F700-------------------------------
  9436. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  9437.     AH = 00h
  9438.     AL = function
  9439.         00h get configuration record
  9440.         Return: DS:DX -> configuration record
  9441.         01h set configuration record
  9442.         02h get path for option
  9443.         DS:DX -> option name
  9444.         Return: DS:DX -> path
  9445.         03h determine whether configuration record set
  9446.         Return: AX = status
  9447.                 0000h set
  9448.                 0001h not yet set
  9449.         04h get link state
  9450.         Return: AX = state
  9451.                 0000h unlinked
  9452.                 0001h linked
  9453. Notes:    this information is preliminary and still subject to change
  9454.     all of the INT F7 calls for FSBBS are used for interprogram
  9455.       communication between the BBS kernel and the programs it spawns
  9456. SeeAlso: AH=01h
  9457. ----------F701-------------------------------
  9458. INT F7 - FSBBS 2.0 - USER RECORD
  9459.     AH = 01h
  9460.     AL = function
  9461.         00h get user record for user currently online
  9462.         Return: DS:DX -> user record
  9463.         01h set user record
  9464.         DS:DX -> user record
  9465. SeeAlso: AH=00h,AH=02h
  9466. ----------F702-------------------------------
  9467. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  9468.     AH = 02h
  9469. Return: DS:DX -> 8-character blank-padded account name
  9470. SeeAlso: AH=01h
  9471. ----------F703-------------------------------
  9472. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  9473.     AH = 03h
  9474.     AL = function
  9475.         00h get terminal index number
  9476.         Return: DX = index number
  9477.         01h set terminal index number
  9478.         DX = terminal index
  9479. ----------F704-------------------------------
  9480. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  9481.     AH = 04h
  9482.     AL = function
  9483.         00h get PassData buffer contents
  9484.         DS:DX -> buffer for PassData contents
  9485.         01h set PassData contents
  9486.         DS:DX -> buffer containing new PassData
  9487.         CH = length of data in buffer
  9488. ----------F705-------------------------------
  9489. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  9490.     AH = 05h
  9491.     AL = function
  9492.         00h get time remaining
  9493.         Return: DX = number of minutes remaining
  9494.         01h get current time
  9495.         Return: DS:DX -> 8-character time string
  9496.         02h increment time
  9497.         DX = number of additional minutes
  9498.         03h decrement time
  9499.         DX = number of minutes
  9500. SeeAlso: AH=06h
  9501. ----------F706-------------------------------
  9502. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  9503.     AH = 06h
  9504.     AL = function
  9505.         00h determine whether function is available
  9506.         DX = index of function
  9507.         01h set function availability
  9508.         DX = index of function
  9509.         ???
  9510. SeeAlso: AH=05h,AH=07h
  9511. ----------F707-------------------------------
  9512. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  9513.     AH = 07h
  9514.     AL = function
  9515.         00h get current dump mode
  9516.         Return: DL = mode
  9517.         01h set dump mode
  9518.         DL = mode
  9519. SeeAlso: AH=06h
  9520. --------*-F8---------------------------------
  9521. INT F8 - reserved for user interrupt
  9522. --------h-F8---------------------------------
  9523. INT F8 - TANDY??? - 100 HZ INTERRUPT
  9524. Note:    this vector is not used on the Tandy 1000TL
  9525. SeeAlso: INT FA"USART"
  9526. --------T-F8---------------------------------
  9527. INT F8 - DoubleDOS - ???
  9528. --------*-F9---------------------------------
  9529. INT F9 - reserved for user interrupt
  9530. --------T-F9---------------------------------
  9531. INT F9 - DoubleDOS - ???
  9532. --------*-FA---------------------------------
  9533. INT FA - reserved for user interrupt
  9534. --------h-FA---------------------------------
  9535. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  9536. Note:    this vector is not used on the Tandy 1000TL
  9537. SeeAlso: INT F8"100 HZ",INT FB"USART"
  9538. --------T-FA---------------------------------
  9539. INT FA - DoubleDOS - TURN OFF TIMESHARING
  9540. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  9541. --------*-FB---------------------------------
  9542. INT FB - reserved for user interrupt
  9543. --------h-FB---------------------------------
  9544. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  9545. SeeAlso: INT FA"USART"
  9546. --------T-FB---------------------------------
  9547. INT FB - DoubleDOS - TURN ON TIMESHARING
  9548. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  9549. --------*-FC---------------------------------
  9550. INT FC - reserved for user interrupt
  9551. --------T-FC---------------------------------
  9552. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  9553. Return: ES = segment of display buffer
  9554. Desc:    determine the address of the virtual screen to which the program
  9555.       should write instead of the actual video memory, so that the
  9556.       multitasked programs do not interfere with each other's output
  9557. Note:    the display buffer may be moved if multitasking is enabled
  9558. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  9559. --------*-FD---------------------------------
  9560. INT FD - reserved for user interrupt
  9561. --------T-FD---------------------------------
  9562. INT FD - DoubleDOS - ???
  9563. --------S-FD---------------------------------
  9564. INT FD - TFPCX - INSTALLATION CHECK
  9565.     AH = function (see separate entries below)
  9566. Program: TFPCX is an interface between modem and terminal program for packet-
  9567.       radio communications
  9568. Notes:    the installation check consists of testing for the string "N5NX" three
  9569.       bytes beyond the interrupt handler; INT FD is the default, but may
  9570.       be changed, so the full installation check consists of scanning
  9571.       for the signature
  9572.     TFPCX returns AX=FFFFh on any unsupported function call
  9573. SeeAlso: AH=01h,AH=03h,AH=FEh
  9574. --------S-FD01-------------------------------
  9575. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  9576.     AH = 01h
  9577. Return: AX = status
  9578.         0000h no characters waiting
  9579.         0001h character available for input
  9580. Program: TFPCX is an interface between modem and terminal program for packet-
  9581.       radio communications
  9582. SeeAlso: AH=02h
  9583. --------S-FD02-------------------------------
  9584. INT FD - TFPCX - GET CHARACTER
  9585.     AH = 02h
  9586. Return: AL = character
  9587. Notes:    this call is only allowed if AH=01h indicated that a character is
  9588.       available
  9589.     all available characters should be read before sending any additional
  9590.       characters
  9591. SeeAlso: AH=01h,AH=03h
  9592. --------S-FD03-------------------------------
  9593. INT FD - TFPCX - OUTPUT CHARACTER
  9594.     AH = 03h
  9595.     AL = character to send
  9596. SeeAlso: AH=02h
  9597. --------S-FDFE-------------------------------
  9598. INT FD - TFPCX - GET VERSION
  9599.     AH = FEh
  9600. Return: AH = major version
  9601.     AL = minor version
  9602. Program: TFPCX is an interface between modem and terminal program for packet-
  9603.       radio communications
  9604. SeeAlso: AH=01h,AH=03h
  9605. --------B-FE---------------------------------
  9606. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  9607. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  9608.       is the last fourth of the interrupt vector table.  If the processor
  9609.       is returned to real mode via a hardware reset (the only possibility
  9610.       on an 80286, though there are a number of ways of generating one),
  9611.       then the BIOS startup code stacks three words on its scratch stack
  9612.       before determining that a return to real mode has been requested.
  9613.       As a result, INT FE and INT FF are corrupted.
  9614. SeeAlso: INT FF"XT286"
  9615. --------T-FE---------------------------------
  9616. INT FE - DoubleDOS - GIVE UP TIME
  9617.     AL = number of 55ms time slices to give away
  9618. Return: after other program (if active) has run
  9619. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  9620. --------G-FE---------------------------------
  9621. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  9622. SeeAlso: INT 3F
  9623. --------B-FF---------------------------------
  9624. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  9625. Note:    (see INT FE"XT286")
  9626. SeeAlso: INT FE"XT286"
  9627. --------b-FF---------------------------------
  9628. INT FF - Z100 - WARM BOOT
  9629. SeeAlso: INT 40"Z100"
  9630. --------Q-FF---------------------------------
  9631. INT FF U - QEMM-386.SYS v6.0+ - internal
  9632. Notes:    requires that a byte in the conventional-memory stub be set to the
  9633.       desired function number (00h through 0Ch)
  9634.  
  9635. Functions supported by QEMM:
  9636.  00h    reflect back to Virtual86-mode interrupt handler (default)
  9637.  01h    ???
  9638.  02h    access DR7???
  9639.  03h    QPI upcall (see INT 67/AH=3Fh)
  9640.  04h    ???
  9641.  05h    ???
  9642.  06h    INT 15/AH=87h
  9643.  07h    EMS services (see INT 67/AH=40h-5Dh)
  9644.  08h    ???
  9645.  09h    QEMM exception handler
  9646.  0Ah    XMS services (see INT 2F/AX=4310h)
  9647.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  9648.  0Ch    ???
  9649. --------v-FF---------------------------------
  9650. INT FF - VIRUS - "Violetta" - ???
  9651. Note:    used but not chained by virus
  9652. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  9653. --------!---FILELIST-------------------------
  9654. Please redistribute the following files unmodified as a group, in a trio of
  9655. archives named INTER40A through INTER40C (preferably the original authenticated
  9656. PKZIP archives):
  9657.     INTERRUP.1ST    the read-me file, containing credits, availability info
  9658.     INTERRUP.A    INT 00 through INT 13
  9659.     INTERRUP.B    INT 14 through INT 15/7F
  9660.     INTERRUP.C    INT 15/80 through INT 19
  9661.     INTERRUP.D    INT 1A through INT 21/44
  9662.     INTERRUP.E    INT 21/45 through INT 21/BF
  9663.     INTERRUP.F    INT 21/C0 through INT 2C
  9664.     INTERRUP.G    INT 2D through INT 2F/7F
  9665.     INTERRUP.H    INT 2F/80 through INT 2F/FF
  9666.     INTERRUP.I    INT 30 through INT 60
  9667.     INTERRUP.J    INT 61 through INT 69
  9668.     INTERRUP.K    INT 6A through INT FF
  9669.     INTERRUP.PRI    a brief introduction to interrupts
  9670.     INTPRINT.COM    a simple formatter that also generates a list summary
  9671.     INTPRINT.DOC    instructions for INTPRINT
  9672.     86BUGS.LST    a listing of CPU bugs and undocumented features
  9673.     CMOS.LST    a description of the CMOS RAM data bytes
  9674.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  9675.     MEMORY.LST    format of the BIOS data area
  9676.     PORTS.LST    a listing of I/O ports
  9677.     COMBINE.BAT    combine the pieces of the list into a single file
  9678. The following files should be distributed in an archive called INTER40D:
  9679.     INT.COM        invoke interrupts from commandline
  9680.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  9681.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  9682.     INT2QH.*    program to convert list into QuickHelp database
  9683.     INTERVUE.EXE    indexed interrupt list browser
  9684.     INTHELP.*    convert list into TurboPower GUIDE database
  9685.     INTLIST.E    Epsilon extension for handling list
  9686.     INTLIST.ICO    Windows icon for INTERVUE
  9687.     INTPRINT.C    source code for INTPRINT
  9688.     RB2NG.*        convert list into Norton Guides database
  9689. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  9690. --------!---CONTACT_INFO---------------------
  9691. Internet: ralf@telerama.lm.com
  9692. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  9693. FIDO: Ralf Brown 1:129/26.1
  9694.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  9695.     unless you address it to me)
  9696. CIS:  >INTERNET:ralf@telerama.lm.com
  9697.